2013-05-16 150 views
1

我在將字符串轉換爲DateTime時遇到麻煩。這是我的。首先,我將當前日期轉換爲字符串(這將是文件夾名稱)。將日期時間轉換爲字符串並返回日期時間

string dateString = string.Format("{0:yyyy-MM-dd_HH-mm-ss}", DateTime.Now); 

輸出這樣

2013-05-16_09-32-47

然後,我創建一個文件夾。在程序執行期間,我得到這個文件夾,我需要將它的名稱轉換回DateTime。嘗試使它像這樣

DateTime directoreDate = DateTime.ParseExact(directory.Name, "0:yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture); 

但它引發FormatException。有誰能告訴我爲什麼會發生這種情況。

+0

在調試我看到正確的目錄名。 – Frigik

+0

如果您從「ParseExact」字符串中刪除「0:」,它會工作嗎? – Adrian

+0

試試這個字符串dateString = DateTime.Now.ToString(「yyyy-MM-dd HH:mm:ss」); 使用System.IO.Directory.Move(@「C:\ oldfolder」,@「C:\ newfolder」);更改您的目錄名稱 –

回答

6

您正在使用用於格式化原始DateTime的相同組合格式字符串。這不需要ParseExact - 降0:從中:

DateTime directoreDate = DateTime.ParseExact(directory.Name, 
              "yyyy-MM-dd_HH-mm-ss", 
              CultureInfo.InvariantCulture); 
3

使用

DateTime directoreDate = DateTime.ParseExact(directory.Name, "yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture); 
0

DateTime.ParseExact刪除0:,它被用來作爲string.Format()一個佔位符。 用途爲:

DateTime directoreDate = DateTime.ParseExact(directory.Name, 
              "yyyy-MM-dd_HH-mm-ss", 
              CultureInfo.InvariantCulture); 
相關問題