C# 如何解析包含纪元到日期时间对象的日文日期时间字符串?

C# 如何解析包含纪元到日期时间对象的日文日期时间字符串?,c#,.net,datetime,cultureinfo,C#,.net,Datetime,Cultureinfo,我正在尝试将格式为gyyyymmdd的日语日期时间字符串转换为日期时间对象。但是,这似乎引发了一个异常字符串未被识别为有效的日期时间。下面是我正在使用的代码 var cal = new JapaneseCalendar(); var jaJP = new CultureInfo("ja-JP", true); jaJP.DateTimeFormat.Calendar = cal; Thread.CurrentThread.CurrentCulture = jaJP; var str = Dat

我正在尝试将格式为
gyyyymmdd
的日语日期时间字符串转换为日期时间对象。但是,这似乎引发了一个异常
字符串未被识别为有效的日期时间。
下面是我正在使用的代码

var cal = new JapaneseCalendar();
var jaJP = new CultureInfo("ja-JP", true);
jaJP.DateTimeFormat.Calendar = cal;
Thread.CurrentThread.CurrentCulture = jaJP;

var str = DateTime.Today.ToString();
var parsed = DateTime.Parse(str);   //Works

str = DateTime.Today.ToString("g yyyyMMdd");
parsed = DateTime.ParseExact(str,"g yyyyMMdd",jaJP);  //Does not works

有什么建议我可能会遗漏在这里吗?

要进行正确的测试,必须使用
DateTime.ToString(“g yyyyMMdd”,jaJP)方法。因此,使用该区域性将日期格式化为“g yyyyMMdd”,结果如下令和 020527“不带格式的结果为”令和2.年5.月27日 0:00:00"因此,您正在丢失该格式的信息,并且无法将结果解析回
DateTime
@dialogicus,因为他们将线程区域性设置为不需要将其传递给
ToString
。您实际尝试解析的日期是什么样子的?看起来只有在数字分开时才会解析以某种方式因此,像“g yy-MM-dd”这样的格式是有效的(请注意,您不需要yyy,因为年份是皇帝统治的时间,不可能超过2位数),因此您可能需要提前做一些工作来分离它们,以便使用一种有效的格式。为了进行适当的测试,您必须使用
DateTime.ToString(“g yyymmd”,jaJP)方法。因此,使用该区域性将日期格式化为“g yyyyMMdd”,结果如下令和 020527“不带格式的结果为”令和2.年5.月27日 0:00:00"因此,您正在丢失该格式的信息,并且无法将结果解析回
DateTime
@dialogicus,因为他们将线程区域性设置为不需要将其传递给
ToString
。您实际尝试解析的日期是什么样子的?看起来只有在数字分开时才会解析以某种方式因此,像“g yy MM dd”这样的格式是有效的(请注意,您不需要yyyy,因为年份是皇帝统治的时间,不可能超过2位数),因此您可能需要提前做一些工作来分隔它们,以便使用一种有效的格式。