是否有直接的方法使用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() AddMinutes()将所需位添加到 DateTime.Parse()返回的DateTime。 / p>

这需要一些字符串解析,但有一点正则表达式你应该没问题......

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top