我有这个字符串:“2013 年 1 月 14 日 9:15:00 EST”。
据我了解,格式如下:d。MMMM yyyy H:mm:ss EST,但我尝试了以下代码,但没有任何效果。我在这里做错了什么?
private static string[] _dateFormats = new[] {
@"d. MMMM yyyy H:mm:ss \E\S\T",
@"d. MMMM yyyy h:mm:ss \E\S\T",
@"d. MMMM yyyy H:mm:ss E\S\T",
@"d. MMMM yyyy h:mm:ss E\S\T",
@"d. MMMM yyyy H:mm:ss EST",
@"d. MMMM yyyy h:mm:ss EST",
@"dd-MM-yyyy HH:mm:ss"
};
private static DateTimeStyles _styles = DateTimeStyles.AllowLeadingWhite
| DateTimeStyles.AllowInnerWhite
| DateTimeStyles.AllowTrailingWhite
| DateTimeStyles.AllowWhiteSpaces;
DateTime dt;
DateTime.TryParseExact(dateTime, _dateFormats, CultureInfo.InvariantCulture, _styles, out dt);
更新:
使用丹麦文化信息就可以了。但是,这也不起作用:Tir,2013 年 1 月 15 日 11:00:00
DateTime.TryParseExact(test, @"ddd, dd MMM yyyy HH:mm:ss", CultureInfo.GetCultureInfo("da-DK"), _styles, out dt);
Tir 等于 Tue 或“Tuesday”。为什么不被识别?
基本上,我试图解析用于监控 RSS 提要的大量格式错误的日期时间字符串。许多 RSS 提要无法验证,但由于我无法更改这一点,因此无论如何我都需要一个好的方法来解析它们。虽然我有关于使用当前时间作为一种指导方针,因为解析的提要项目不应该超过一个小时。这意味着缺少正确的时区,可以设置为前一小时的最后一分钟。
例如。我得到以下日期时间字符串:Tir,2013 年 1 月 15 日 11:15:00。它没有时区指示,但由于提要项目是在 14:18 UTC 提取的,因此很可能在 14:15 UTC 发布。
这个问题开始是一个有点微不足道的错误修复,但更可能是关于如何解决这个问题的问题。有没有人有一些好主意?
谢谢。