Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据PC解析日期和时间';中国的区域环境_C#_Wpf_Datetime_Localization - Fatal编程技术网

C# 如何根据PC解析日期和时间';中国的区域环境

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,我的应用程序应该能够成功地将其解析为一个日期时间对象,该对象表示日

我正在使用.NETFramework4和WPF

我的应用程序需要了解PC区域设置。它应该能够解析日期和时间格式,这是在Windows 7的PC目标平台的区域设置中指定的

我的个人电脑文化已被设置为对我们开放。为了测试我的应用程序,在PC区域设置中,我将日期和时间格式设置如下:

短日期:年月日

长日期:dddd、MMMM dd、yyyy

短时间:HHmm

长时间:HHmm.ss

现在,给定一个字符串
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:请注意,日期时间格式实际上是可变的。用户可以根据自己的意愿进行设置。当然,我的电脑的日期时间格式是个问题(短日期、长日期、短时间、长时间)。