2

我正在尝试解析各种日期格式,天数、时间和年份组件是一致的,但星期几和月份取决于设备。这些是来自 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 ms-BN ms-MY

有任何想法吗?

谢谢你的时间

4

2 回答 2

2

这可能是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而不是返回正确的对象。IsnDateTime

于 2013-03-11T11:45:37.110 回答
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"

恕我直言Isn!= Isnin

于 2013-03-11T11:48:22.553 回答