1

有没有使用 c# 将 iCalendar 日期解析为 .net 的直接方法?iCalendar 日期如下所示:

2009-08-11T10:00+05:0000

我需要解析它以友好的格式显示它...谢谢

4

3 回答 3

1
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 进行解析。

于 2009-09-14T00:07:28.457 回答
0

您可以使用DateTime.Parse()来解析 + 之前的所有内容。我不知道 iCalendar 格式规范,但我假设 + 之后是添加到 + 之前日期的小时/分钟。因此,您可以使用AddHours()andAddMinutes()将所需的位添加到由DateTime.Parse().

这需要一些字符串解析,但是使用一些正则表达式应该没问题...

于 2009-09-13T23:40:31.110 回答
0

由于这不是标准格式字符串,但您知道确切的格式,您可以使用DateTime.ParseExact并指定自定义格式字符串,如下所示:

DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);

'zzz' 说明符表示从 UTC 偏移的小时和分钟,最后的两个零只是与您正在处理的格式匹配的文字。

于 2009-09-14T00:38:40.747 回答