我正在尝试将Hijri日期转换为格里高利日期我正在关注this文章,我的代码如下:
var cultureInfo = CultureInfo.CreateSpecificCulture("ar-sa");
string date = "19/12/36 12:00:00 ص";
入门
字符串未被识别为有效的日期时间
下面的错误
DateTime tempDate = DateTime.ParseExact(date, "dd/MM/yyyy", cultureInfo.DateTimeFormat, DateTimeStyles.AllowInnerWhite);
lblDate.Text = tempDate.ToString("dd/MM/yyyy");
我收到字符串未被识别为有效的日期时间 . 有人可以告诉我这段代码有什么问题吗?
1 回答
我想我的方式正确但是......让我们至少尝试一下 .
首先,
DateTime
值总是在格里高利历中 . 没有“aDateTime
in a UmAlQuraCalendar calendar” - 这是由ar-sa
文化使用 - 你必须使用UmAlQuraCalendar
以特定方式解释DateTime
.其次,当您使用
DateTime.ParseExact
解析字符串时,您的字符串和格式会根据您使用的文化与 exactly 匹配 . 由于ص
字符似乎是ar-sa
的ar-sa
文化,因此您应该提供tt
说明符以及您的时间部分 .注意:由于TwoDigitYearMax是
1451
的UmAlQuraCalendar
日历,因此36
将被解析为带有yy
格式说明符的1436
.这完美地解析了你的问题但 WAIT! 会有什么结果?这里是 .
为什么?正如我在顶部所说,你 have to 使用
UmAlQuraCalendar
来解释这个DateTime
实例 .