2013-03-04 63 views
11

我使用轉換,如:Convert.ToDateTime:如何設置格式

Convert.ToDateTime(value) 

,但我需要轉換日期,如 「MM/YY」 格式化。
我正在尋找這樣的事情:

var format = "mm/yy"; 
Convert.ToDateTime(value, format) 
+2

'DateTime'對象沒有定義的格式。您可以以格式輸出DataTime,那是什麼意思? – 2013-03-04 14:15:30

回答

14

你或許應該請使用DateTime.ParseExactDateTime.TryParseExact代替。它們允許你指定特定的格式。我個人更喜歡Try -versions,因爲我認爲它們爲錯誤情況生成更好的代碼。

+1

datetime.paeseExact(「12/12」,「mm/yy」,Cul ..)= {01/01/2012 00:12:00}; – Refael 2013-03-04 14:40:11

+0

但我期待{01/12/12}或{12/12} – Refael 2013-03-04 14:40:32

+1

@Refael您需要閱讀[自定義日期和時間格式字符串](http://msdn.microsoft.com/en-us/library /8kb3ddd4.aspx)。 'mm'是分鐘,'MM'是幾年。 – 2013-03-04 14:55:56

9

如果value是在格式string並且希望將其轉換成一個DateTime對象,你可以使用DateTime.ParseExact靜態方法:

DateTime.ParseExact(value, format, CultureInfo.CurrentCulture); 

例子:

string value = "12/12"; 
var myDate = DateTime.ParseExact(value, "MM/yy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); 

Console.WriteLine(myDate.ToShortDateString()); 

結果:

2012-12-01 
+0

我試試這個:string value =「12/12」; format =「mm/yy」;然後datetime.paeseExact(value,format,Cul ..)= return {01/01/2012 00:12:00}。爲什麼? – Refael 2013-03-04 14:28:47

+0

因此'DateTime.ParseExact(value,「mm/yy」,CultureInfo.CurrentCulture);'應該可以工作。 – MarcinJuraszek 2013-03-04 14:29:36

+0

我期待{01/12/12}或{12/12} – Refael 2013-03-04 14:35:17

1

DateTime沒有格式。格式只有當你把一個DateTime成一個字符串,這恰好隱含您展示一種形式,網頁上的價值,等等

其中你顯示日期時間,並設置格式適用那裏(或者如果你需要額外的指導,請修改你的問題)。

0

如何:

string test = "01-12-12"; 
    try{ 
     DateTime dateTime = DateTime.Parse(test); 
     test = dateTime.ToString("dd/yyyy"); 
    } 
    catch (FormatException exc) 
    { 
     MessageBox.Show(exc.Message); 
    } 

當測試將等於 「12/2012」

希望它能幫助!請參閱HERE