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访问,但奇怪的是,这为属性对话框中显示的内容提供了不同的时间值。