我正在使用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。
我不知道这个错误意味着什么。这段代码应该正常工作......
答案 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后。