尝试解析日期时出错

时间:2012-03-15 22:50:47

标签: c# .net

我正在使用itextsharp从pdf文件中提取修改日期。字符串以这种格式返回:D:20120224093340。我正在尝试将该字符串解析为日期时间,如下所示:

string modDate = "";

reader.Info.TryGetValue("ModDate", out modDate);

System.Globalization.CultureInfo provider = 
System.Globalization.CultureInfo.InvariantCulture;

pdfModDate = DateTime.ParseExact(formattedDate, "D:yyyyddMMHHmmss", provider);

但是我收到此错误消息:日历System.Globalization.GregorianCalendar中不支持字符串表示的DateTime。

我不知道这个错误意味着什么。这段代码应该正常工作......

5 个答案:

答案 0 :(得分:8)

您的月份是24,格里高利历不支持: - )

D:20120224093340
D:yyyyddMMHHmmss
        ^^

答案 1 :(得分:3)

试试"D:yyyyMMddHHmmss"。你有日和月的转换。

答案 2 :(得分:2)

您提供的日期采用以下格式:

D:yyyyMMddHHmmss

不是英文格式MM / dd / yyyy

答案 3 :(得分:1)

您可以尝试从字符串的开头剥离D:。 ParseExact函数将大写D识别为日期格式字符串中的特殊字符。根据{{​​3}},“D”是长日期格式的缩写。

此外,您需要切换日期和月份。他们返回的顺序是年,月,日,小时,分钟,秒。

答案 4 :(得分:1)

    string date = "D:20120224093340";
        System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture;
        DateTime dateTime = DateTime.ParseExact(date,"D:yyyyMMddHHmmss",provider);

切换ddMM后。