2011-06-23 166 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; 
    } 
}