从字符串(阿拉伯文化到英语)转换为dateTime

时间:2013-12-09 06:52:05

标签: c#

string strHijdt ="29-02-1435";

    DateTime hdt = DateTime.ParseExact(strHijdt, "dd/MMM/yyyy HH:MI24",
    CultureInfo.InvariantCulture);

转换为字符串(“29-02-1435”)到日期时间时出错

2 个答案:

答案 0 :(得分:0)

2/1435仅有28

所以,下面会有效

string aa="28-02-1435";
DateTime hdt = DateTime.ParseExact(aa, "dd-MM-yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(hdt.ToLongDateString());

DEMO

由于您已将输入设为29-02-1435,即使您提供了正确的日期时间格式(dd-MM-yyyy),您也会收到无效日期的错误

答案 1 :(得分:0)

这里有两个问题: 1.如上所述,预期的格式不匹配字符串(没有时间,不同的分隔符) 2.如果您的日期字符串在Hijri日历中,您应该明确提供正确的文化或使用系统文化(为IFormatProvider传递null):

string strHijdt = "29-02-1435";
var culture = CultureInfo.GetCultureInfo("ar-SA");
DateTime hdt = DateTime.ParseExact(strHijdt, "dd-MM-yyyy", culture);