有没有使用 c# 将 iCalendar 日期解析为 .net 的直接方法?iCalendar 日期如下所示:
2009-08-11T10:00+05:0000
我需要解析它以友好的格式显示它...谢谢
string strDate = "2009-08-11T10:00+05:0000";
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.FullDateTimePattern = "yyyy-MM-ddTHH:mmzzz";
DateTime dt = DateTime.Parse(c.Substring(0, c.Length-2), dtfi);
zzz 用于时区,但仅在如下表示时才被识别:+xx:xx。我用您的示例进行了测试,删除了最后 2 个 0,然后使用自定义 DateTimeFormatInfo 进行解析。
您可以使用DateTime.Parse()
来解析 + 之前的所有内容。我不知道 iCalendar 格式规范,但我假设 + 之后是添加到 + 之前日期的小时/分钟。因此,您可以使用AddHours()
andAddMinutes()
将所需的位添加到由DateTime.Parse()
.
这需要一些字符串解析,但是使用一些正则表达式应该没问题...
由于这不是标准格式字符串,但您知道确切的格式,您可以使用DateTime.ParseExact
并指定自定义格式字符串,如下所示:
DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);
'zzz' 说明符表示从 UTC 偏移的小时和分钟,最后的两个零只是与您正在处理的格式匹配的文字。