我正在尝试解析各种日期格式,日期编号,时间和年份组件是一致的,但是星期几和月份取决于设备。这些是来自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-BN MS-MY
有什么想法吗?
感谢您的时间
答案 0 :(得分:2)
这可能是Malasian文化的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
对象。
答案 1 :(得分:1)
我已经用马来西亚文化测试了你的约会时间。显然你的字符串有不正确的日期名称:
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
,