C# 如何根据PC解析日期和时间';中国的区域环境
我正在使用.NETFramework4和WPF 我的应用程序需要了解PC区域设置。它应该能够解析日期和时间格式,这是在Windows 7的PC目标平台的区域设置中指定的 我的个人电脑文化已被设置为对我们开放。为了测试我的应用程序,在PC区域设置中,我将日期和时间格式设置如下: 短日期:年月日 长日期:dddd、MMMM dd、yyyy 短时间:HHmm 长时间:HHmm.ss 现在,给定一个字符串C# 如何根据PC解析日期和时间';中国的区域环境,c#,wpf,datetime,localization,C#,Wpf,Datetime,Localization,我正在使用.NETFramework4和WPF 我的应用程序需要了解PC区域设置。它应该能够解析日期和时间格式,这是在Windows 7的PC目标平台的区域设置中指定的 我的个人电脑文化已被设置为对我们开放。为了测试我的应用程序,在PC区域设置中,我将日期和时间格式设置如下: 短日期:年月日 长日期:dddd、MMMM dd、yyyy 短时间:HHmm 长时间:HHmm.ss 现在,给定一个字符串6/3/2013 1617.18,我的应用程序应该能够成功地将其解析为一个日期时间对象,该对象表示日
6/3/2013 1617.18
,我的应用程序应该能够成功地将其解析为一个日期时间对象,该对象表示日期和时间2013年6月3日下午4:17:18
。请注意,此格式可以由用户更改,因此我不能假设将使用此格式
我尝试了以下代码:
string sdt = "6/3/2013 1617.18";
CultureInfo culture = CultureInfo.CurrentCulture;
DateTime dt;
bool validDate = DateTime.TryParse(sdt,
culture.DateTimeFormat,
System.Globalization.DateTimeStyles.None,
out dt);
但是执行后,validDate
为false
给定根据PC区域设置中设置的模式格式化的日期时间字符串,如何将其转换为等效的
DateTime
对象?什么是区域性。DateTimeFormat
?您拥有的日期似乎由短日期
+长时间
组成,而不是两个短或两个长日期…请尝试使用DateTime.Parse()来执行此操作。它将抛出一个异常,您可以捕获并解释该异常。@Oded:请注意,日期时间格式实际上是可变的。用户可以根据自己的意愿进行设置。当然,我的电脑的日期时间格式是个问题(短日期、长日期、短时间、长时间)。