首页 / C# / C#-获取文化特定日期的日和月部分
C#-获取文化特定日期的日和月部分
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-获取文化特定日期的日和月部分,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2143字,纯文字阅读大概需要4分钟。
内容图文
![C#-获取文化特定日期的日和月部分](/upload/InfoBanner/zyjiaocheng/660/57e4f127cd3d4ae78dca62fd856f5c86.jpg)
当使用CultureInfo.CurrentCulture.DateTimeFormat获取本地日期格式时,是否有一种内置方式仅获取本地ShortTimePattern返回的日期的日期和月份部分?例如dd / MM
基本上,在我的剃刀视图中,我正在执行以下操作:
@someObject.Date.ToString("dd/MM")
但是现在需要使其与当前的文化相适应,因此希望找到一种方法来根据当前的文化提供动态格式掩码.想象一下:
@someObject.Date.ToString(CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePatternNoYear)
解决方法:
为每种文化设置月和日模式是一个坏消息.在这种情况下,DRY principle表示要利用每种区域性的日期时间格式,而不是使用自定义的MonthDayPattern重复(可能会矛盾)它.
取而代之的是利用Short Date (“d”) format specifier以适当的顺序获取月份和日期,并针对所讨论的文化进行适当的分隔,然后调整年份(及其分隔符).
var de = CultureInfo.CreateSpecificCulture("de-DE").DateTimeFormat;
var uk = CultureInfo.CreateSpecificCulture("en-GB").DateTimeFormat;
var us = CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat;
var now = DateTime.Now;
var yearNow = now.Year.ToString(CultureInfo.InvariantCulture);
const string yearPattern = "(^{0}{1}|{1}{0}$)"; // {0} = year, {1} = date separator
var deDate = now.ToString("d", de);
var deYearlessDate =
Regex.Replace(
deDate,
String.Format(yearPattern, yearNow, de.DateSeparator),
"");
// or a double String.Replace instead of a Regex.Replace
//var deYearlessDate =
// deDate.Replace(de.DateSeparator + yearNow, "").Replace(yearNow + de.DateSeparator, "");
var ukDate = now.ToString("d", uk);
var ukYearlessDate =
Regex.Replace(
ukDate,
String.Format(yearPattern, yearNow, uk.DateSeparator),
"");
// or a double String.Replace instead of a Regex.Replace
//var ukYearlessDate =
// ukDate.Replace(uk.DateSeparator + yearNow, "").Replace(yearNow + uk.DateSeparator, "");
var usDate = now.ToString("d", us);
var usYearlessDate =
Regex.Replace(
usDate,
String.Format(yearPattern, yearNow, us.DateSeparator),
"");
// or a double String.Replace instead of a Regex.Replace
//var usYearlessDate =
// usDate.Replace(us.DateSeparator + nowYear, "").Replace(nowYear + us.DateSeparator, "");
Console.WriteLine(deYearlessDate); // 02.04
Console.WriteLine(ukYearlessDate); // 02/04
Console.WriteLine(usYearlessDate); // 4/2
内容总结
以上是互联网集市为您收集整理的C#-获取文化特定日期的日和月部分全部内容,希望文章能够帮你解决C#-获取文化特定日期的日和月部分所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。