0

我试图将 a 解析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.

有什么想法吗?

4

2 回答 2

10

您几个月来一直在使用错误的格式说明符。

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

使用dd/MM/yyyy.

于 2012-05-10T13:40:27.887 回答
1

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

改为这样做

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

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

于 2012-05-10T13:42:36.803 回答