2013-10-30 95 views
1

我有日期時間輸入欄從那裏我服用日期,並將其轉換爲另一種格式,我的代碼爲如何將日期(從日期時間輸入字段)轉換爲C#中的另一種日期格式?

try 
{ 
    DateTime dt = dtiFrom.Value.Date; 
    string format = "DD-MM-YYYY"; // Use this format 
    MessageBox.Show(dt.ToString(format)); // here its shows result as DD-10-YYYY 
    DateTime dt1 = Convert.ToDateTime(dt.ToString(format)); // here Error "The string was not recognized as a valid DateTime. There is an unknown word starting at index 0." 
} 
catch (Exception ee) 
{ 
    MessageBox.Show(ee.Message, "Error Message!"); 
} 

我不能按照我的格式轉換日期。請任何機構幫助我的代碼或建議我一些代碼。在此先感謝

+1

順便說一句,你應該考慮使用System.Diagnostics.Trace爲未來的錯誤記錄。它給出了相同的信息,但不使用這樣一個醜陋的消息框。如果您想在實時環境中使用您的產品,那麼用於錯誤處理的消息框就是糟糕的設計。用戶不關心具體的問題。記錄錯誤,如果可能的話嘗試在沒有日期的情況下繼續。如果這是不可能的,你可以警告用戶出了問題。 – Nzall

回答

5

您的格式應該如下:

string format = "dd-MM-yyyy"; 

外殼是用字符串格式化重要的是,你可能會覺得很奇怪,月用大寫,但這是因爲較低的情況下mmm用於表示分鐘。

請注意,輸出顯示爲DDYYYY的原因是因爲任何未保留爲格式字符的字符都將不會被更改。大寫DY不保留,這就是它們顯示在輸出中的原因,就像-保持不變。

如果你想輸出保留格式字符,那麼你可以使用\來轉義它們。

See here for a full list of date and time format values

1

日期格式模式應該改變,並更好地使用TryParseExact,而不是使用轉換

DateTime dt = dtiFrom.Value.Date; 
string format = "dd-MM-yyyy"; 
DateTime dt1 = new DateTime(); 

if (DateTime.TryParseExact(dt , format, null , DateTimeStyles.None, out dt1)) 
{ 
    // you can use dt1 here 
} 
else 
{ 
    MessageBox.Show("Error Massage"); 
} 
相關問題