c# DateTime解析国际文化
本文关键字:文化 DateTime | 更新日期: 2023-09-27 18:03:14
我试图解析各种日期格式,日数,时间和年组件是一致的,但星期和月的一天是设备相关的。以下是一些来自ipad的示例结果
Isn Mac 11 16:25:58 2013
Ahd Mac 10 18:34:41 2013
Sab Mac 09 18:44:34 2013
Jum Mac 08 16:57:33 2013
Fri Mar 8 16:49:46 2013
Thu Mar 7 12:34:47 2013
Sat Jan 19 12:21:58 2013
英文的解析很好,但马来西亚(马来语)的解析从来没有
我用这个来调试它:
var allCultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
foreach (var culture in allCultures)
{
if (DateTime.TryParseExact("Isn Mac 11 16:25:58 2013", "ddd MMM d HH:mm:ss yyyy", culture, DateTimeStyles.None, out result))
return;
}
理想情况下,它可以处理这种格式的所有可能的语言,我不必编写特定于语言的代码
我尝试用以下文化代码手动解析马来西亚日期:女士ms-BNmy
任何想法?
感谢您的宝贵时间
这可能是马来西亚文化的CultureInfo
数据中的一个错误- AbbreviatedDayNames
数组看起来像这样:
Ahad
Isnin
Sel
Rabu
Khamis
Jumaat
Sabtu
你不会知道Isn
不存在——它是Isnin
。
比较一下DayNames
:
Ahad
Isnin
Selasa
Rabu
Khamis
Jumaat
Sabtu
我从
System.Globalization.CultureInfo.GetCultureInfo("ms-MY").DateTimeFormat
作为解决方案,看看您是否可以使用完整的日期名称-在您的示例中使用Isnin
而不是Isn
,返回正确的DateTime
对象。
我用马来西亚文化测试了你的约会时间。显然你的字符串有不正确的日名:
var dt = new DateTime(2013,03,11,16,25,58);
var currCult = CultureInfo.CreateSpecificCulture("ms-MY");
var str = dt.ToString("ddd MMM d HH:mm:ss yyy", currCult);
// ---> "Isnin Mac 11 16:25:58 2013"
Imho Isn
!= Isnin
,