2014-05-04 80 views
0

我無法弄清楚如何將按照下面返回的記錄時間轉換爲日期時間。我的代碼是:需要幫助將Shell.Folder.GetDetailsOf字符串轉換爲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" }; 
DateTime recordingDateTime = DateTime.Now; 

DateTime.TryParseExact(recordingTime, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out recordingDateTime); 

的問題是,對所有密集的目的在recordingTime字符串值看起來很好肉眼,在上述情況下,「2014年7月3日7:30 PM」,但它清楚地沒有被返回,因爲我期待在上面的代碼後,recordingDateTime是"01/01/1000 12:00:00 AM"

如果我將recordingTime中的值複製到剪貼板並將其粘貼到代碼窗格中並將其包裹在兔子的耳朵中並去保存,它給了我一個unicode警告。

我的問題是我如何解析recordingTime字符串在相同的文化?正如TryParseExact方法調用預期的那樣?

我希望這是更清晰:)

感謝

馬特

+1

你'日期時間。 TryParseExact'返回'true'。我沒有看到任何錯誤。你真正的問題是什麼? –

+0

是否有你沒有使用FileInfo和/或DirectoryInfo類的原因? –

+0

嗨Soner,希望我的編輯會使它更清晰。這是變量中返回的值,可能是由於字符集不匹配而導致無法正確解析。 – mattpm

回答

0

通過正則表達式剝離非打印字符遞上here解決了這個對我來說:

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