【发布时间】:2021-10-04 14:21:00
【问题描述】:
我们有一个集成合作伙伴,他坚持以yyyyMMdd:Hmm 格式的字符串形式向我们发送日期时间,例如“20211029:102”。请注意,小时没有前导零。
我试着像这样解析它:
Datetime datetime = DateTime.ParseExact(
"20211029:102",
"yyyyMMdd:hmm",
CultureInfo.InvariantCulture,
DateTimeStyles.None
);
但这会导致
FormatException••• 字符串“20211029:102”未被识别为有效 日期时间。
我可以通过重新添加缺失的零来使其工作,例如:
string datetimeParts = "20211029:102".Split(":");
string value = datetimeParts[0] + datetimeParts[1].PadLeft(4, '0');
Datetime dt = DateTime.ParseExact(
value,
"yyyyMMddHHmm",
CultureInfo.InvariantCulture,
DateTimeStyles.None
);
但我觉得我不需要“预解析”该值。是否可以不经过预处理就解析这种格式?
【问题讨论】:
标签: c# datetime parsing formatting cultureinfo