2011-06-23 222 views
-3

可能重複:
How can I convert a string into datetime in .NET?將字符串轉換爲DATETIME

我有以下格式 「15/03/2046」 的字符串。如何將此字符串轉換爲DateTime對象?

我的問題是當我做Convert.ToDateTime(「15/03/2046」)我得到一個異常。
當我做Convert.ToDateTime(「03/03/2046」)每件事情都很好。
所以我想我必須在轉換時指定格式。

+0

看看在相關問題的列表中。或者你知道..搜索。 – Ray

回答

1

DateTime.Parse或其姐妹方法DateTime.ParseExact

+0

DateTime.TryParse,DateTime.TryParseExact –

+1

或DateTime.TryParse,如果有可能您的解析字符串格式不正確或爲空,它總是很好。如果您的日期格式發生變化,也可以使用 – Slider345

+0

[This](http://msdn.microsoft.com/en-us/library/5hh873ya.aspx)。 –

0

使用DateTime.ParseExact指定輸入字符串的格式:

DateTime d = DateTime.ParseExact(
       "15/03/2046", 
       "dd/MM/YYYY", 
       CultureInfo.InvariantCulture 
      ); 
0

更通用的代碼,使用擴展方法和默認值的情況下,如果它不能解析日期

void Main() 
{ 
    var dt = "15/03/2046"; 

    dt.ToDateTime("fr-FR", DateTime.Now).Dump(); 
} 

public static class Extensions 
{ 
    public static DateTime ToDateTime(this string dateTime, string culture, DateTime defaultValue) 
    { 
     DateTime dt; 

     if (DateTime.TryParse(dateTime, System.Globalization.CultureInfo.CreateSpecificCulture(culture), System.Globalization.DateTimeStyles.None, out dt)) 
      return dt; 
     else 
      return defaultValue; 
    } 
}