gpt4 book ai didi

c# - 将日期从 Hijri 转换为 Gregorian 日期时,字符串未被识别为有效的日期时间

转载 作者:行者123 更新时间:2023-11-30 21:54:12 26 4
gpt4 key购买 nike

我正在尝试将回历日期转换为我关注的公历日期 this文章和我的代码如下:

var cultureInfo = CultureInfo.CreateSpecificCulture("ar-sa");
string date = "19/12/36 12:00:00 ص";

获取

string was not recognized as a valid datetime

下一行错误

DateTime tempDate = DateTime.ParseExact(date, "dd/MM/yyyy", cultureInfo.DateTimeFormat, DateTimeStyles.AllowInnerWhite);
lblDate.Text = tempDate.ToString("dd/MM/yyyy");

我收到的字符串未被识别为有效的日期时间。有人可以告诉我这段代码有什么问题吗?

最佳答案

我认为我的方法是正确的,但是..让我们至少尝试一下。

首先,DateTime 值基本上始终在公历中。没有“UmAlQuraCalendar 日历中的 DateTime”之类的东西 - ar-sa 文化使用 - 你必须使用UmAlQuraCalendar 以特定方式解释 DateTime

其次,当您使用 DateTime.ParseExact 解析您的字符串时,您的字符串和格式会根据您使用的文化完全匹配。由于 õ性格似乎AMDesignator对于 ar-sa 文化,您还应该为您的时间部分提供 tt 说明符。

string s = "19/12/36 12:00:00 ص";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yy hh:mm:ss tt", CultureInfo.GetCultureInfo("ar-sa"),
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}

注:自 TwoDigitYearMaxUmAlQuraCalendar 日历的 1451,您的 36 将被解析为 1436yy格式说明符。

这完美地解析了您的问题,但是等等!结果会是什么?在这里。

02/10/2015 00:00:00

为什么?正如我在顶部所说,您必须使用UmAlQuraCalendar 来解释此DateTime 实例。

UmAlQuraCalendar ul = new UmAlQuraCalendar();
Console.WriteLine(ul.GetYear(dt)); // 1436
Console.WriteLine(ul.GetMonth(dt)); // 12
Console.WriteLine(ul.GetDayOfMonth(dt)); // 19

关于c# - 将日期从 Hijri 转换为 Gregorian 日期时,字符串未被识别为有效的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33278870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com