将字符串解析为DateTime对象

时间:2012-05-10 13:38:55

标签: c# .net datetime date-format

我正在尝试将String解析为DateTime对象,但似乎总是将月份默认为1.所以我要说我给它一个字符串30/05/1970它最终转换为DateTime对象,月份值等于1

以下是代码:

    public static DateTime ToDateTime(this String value, String format)
    {
        Contract.Requires(!String.IsNullOrEmpty(value));
        Contract.Requires(!String.IsNullOrEmpty(format));

        DateTime date;
        if (DateTime.TryParseExact(value, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
        {
            return date;
        }           

        throw new ArgumentException("Input value is not a valid date.");
    }

请注意,传递给方法的格式为dd/mm/yyyy

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

您使用了错误的格式说明符数月。

MM不是mm。您现在正在将月份解析为分钟。

使用dd/MM/yyyy

答案 1 :(得分:1)

您可能指定的格式不正确。

改为

var dt= ToDateTime("30/05/1970", "dd/MM/yyyy");

看看这个:http://www.csharp-examples.net/string-format-datetime/