将字符串转换为datetime

时间:2011-06-23 16:40:24

标签: c# datetime

  

可能重复:
  How can I convert a string into datetime in .NET?

我的字符串格式为“15/03/2046”。如何将此字符串转换为DateTime对象?

我的问题是当我做Convert.ToDateTime(“15/03/2046”)时,我得到一个例外。
当我做Convert.ToDateTime(“03/03/2046”)时,每件事情都可以正常工作 所以我想我必须在转换时以某种方式指定格式....

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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;
    }
}