Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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# 需要帮助将Shell.Folder.GetDetailsOf字符串转换为DateTime吗_C#_String_Datetime - Fatal编程技术网

C# 需要帮助将Shell.Folder.GetDetailsOf字符串转换为DateTime吗

C# 需要帮助将Shell.Folder.GetDetailsOf字符串转换为DateTime吗,c#,string,datetime,C#,String,Datetime,我不知道如何将下面返回的录制时间转换为日期时间。我的代码是: Shell shell = new Shell(); Folder folder = shell.NameSpace("D:\Recorded Tv"); string recordingTime = folder.GetDetailsOf(WTVfile, 260); string[] formats = { @"dd\/MM\/yyyy", @"d\/MM\/yyyy h:mm tt", @"d\/MM\/yyyy" };

我不知道如何将下面返回的录制时间转换为日期时间。我的代码是:

Shell shell = new Shell();
Folder folder = shell.NameSpace("D:\Recorded Tv");  
string recordingTime = folder.GetDetailsOf(WTVfile, 260);  
string[] formats = { @"dd\/MM\/yyyy", @"d\/MM\/yyyy h:mm tt", @"d\/MM\/yyyy" };
DateTime recordingDateTime = DateTime.Now;

DateTime.TryParseExact(recordingTime, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out recordingDateTime);
问题是recordingTime中的字符串值在所有密集型用途下肉眼看起来都很好,在上面的例子中是“07/03/2014 7:30 PM”,但它显然没有像我预期的那样返回,因为在上面的代码之后,recordingDateTime是
“01/01/1000 12:00:00 AM”

如果我将recordingTime中的值复制到剪贴板,并将其粘贴到代码窗格中,然后将其包裹在rabbit的耳朵中并进行保存,它会给我一个unicode警告

我的问题是如何解析recordingTime字符串以使其处于相同的区域性??正如TryParseExact方法调用所期望的那样

我希望这更清楚:)

谢谢


Matt

通过提供的正则表达式剥离不可打印字符为我解决了这一问题:

val = Regex.Replace(val, @"[^\u0000-\u007F]", string.Empty);

您的
DateTime.TryParseExact
返回
true
。我看不出有什么不对劲。你的实际问题到底是什么?你不使用FileInfo和/或DirectoryInfo类有什么原因吗?嗨,Soner,希望我的编辑能让它更清楚。可能是由于字符集不匹配,变量中返回的值没有被正确解析??嗨,Brian,这是我试图获得的扩展属性-我希望已经清除了这个问题。注意,我也尝试过通过ExtendedProperty访问,但奇怪的是,这为属性对话框中显示的内容提供了不同的时间值。