C#DateTime解析国际文化

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 英国人解析得很

我正在尝试解析各种日期格式,日期、时间和年份组件是一致的,但是星期和月份的日期取决于设备。以下是一些来自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;
        }
理想情况下,它将以这种格式处理所有可能的语言,并且我不必编写特定于语言的代码

我尝试用以下文化代码手动解析马来西亚日期: 太太 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”