题
是否有直接的方法使用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的小时和分钟偏移量,两个结束零只是文字,以匹配您正在处理的格式。
不隶属于 StackOverflow