【发布时间】:2017-10-12 07:01:41
【问题描述】:
在 UWP 中,像这样将日期格式化为 longdate 字符串
string myDateString = new DateTimeFormatter("longdate").Format(DateTime.Today);
给myDateString = "Thursday, 12 October 2017"
尝试像这样将其转换回来
DateTime myDate = DateTime.Parse(myDateString, CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal);
抛出System.FormatException
尝试像这样将其转换回来
DateTime myDate = DateTime.ParseExact(myDateString, "longdate", CultureInfo.CurrentCulture);
也抛出System.FormatException
然后我将我的机器设置为 US。 myDateString = "Thursday, October 12 2017"的值
但是当我尝试将它转换回日期时间时,这也会引发System.FormatException。
在 C# 中如何使用当前区域性将长日期字符串转换为日期时间?
【问题讨论】:
-
你的长日期格式是什么?毫米/日/年?获取日期时间,DateTime d = DateTime.Now;然后将其转换为您想要的任何格式的字符串, string s = d.ToString("dd/MM/yyyy-HH:mm:ss.fff");
-
DateTime.ParseExact不使用DateTimeFormatter所以我认为它不知道DateTimeFormatter("longdate")的格式 -
我认为这是 UWP?如果是这样,我建议以这种方式标记它。此外,请提供您为
myDateString获得的实际价值。 -
如果你需要一个格式化的字符串,这就足够了:DateTime.Today.ToLongDateString()
-
如我的示例所示,将日期转换为字符串没有问题。问题是从长日期字符串转换回日期时间