C#DateTime解析国际文化
我正在尝试解析各种日期格式,日期、时间和年份组件是一致的,但是星期和月份的日期取决于设备。以下是一些来自iPad的示例结果C#DateTime解析国际文化,c#,parsing,date,internationalization,cultureinfo,C#,Parsing,Date,Internationalization,Cultureinfo,我正在尝试解析各种日期格式,日期、时间和年份组件是一致的,但是星期和月份的日期取决于设备。以下是一些来自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 英国人解析得很
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;
}
理想情况下,它将以这种格式处理所有可能的语言,并且我不必编写特定于语言的代码
我尝试用以下文化代码手动解析马来西亚日期:
太太
BN女士
米女士
有什么想法吗
感谢您的时间这可能是马来西亚文化的
CultureInfo
数据中的一个错误-缩写达因名称
数组如下所示:
Ahad
Isnin
Sel
Rabu
Khamis
Jumaat
Sabtu
您不会发现,is
本身并不存在-它是Isnin
要进行比较,请查看DayNames
:
Ahad
Isnin
Selasa
Rabu
Khamis
Jumaat
Sabtu
我是从以下地方挑选的:
System.Globalization.CultureInfo.GetCultureInfo("ms-MY").DateTimeFormat
作为解决方案,请查看是否可以使用全天名称-在示例中使用
Isnin
而不是Isn
,返回正确的DateTime
对象。我已使用马来西亚文化测试了您的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
,只要把它读回来,我想如果它可以是8或08,那么这个数字就不太一致了,但是这很容易解决08
或8
你可以使用一个d
来解决这两个问题。那么你试过什么呢?您已经尝试了您的代码,但它无法使用d
进行解析,但可以使用dd
进行解析?使用dd
如果您输入8
或08
的日期,它会失败吗?请提供更多您尝试过的内容和问题所在。我已经对其进行了一些更新,因为日期部分不是问题(感谢Habib,无论哪种方式都有效)。它是第一部分,例如“不是Mac”对“Fri-Mar”