有没有一种直接的方法可以使用c#将iCalendar日期解析为.net?iCalendar日期如下所示:
2009-08-11T10:00+05:0000我需要解析它,以便以友好的格式显示它...谢谢
发布于 2009-09-14 00:07:28
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-13 23:40:31
您可以使用DateTime.Parse()来解析+之前的所有内容。我不知道iCalendar格式规范,但我假设+之后是要添加到+之前的日期的小时/分钟。因此,您可以使用AddHours()和AddMinutes()将所需的位添加到DateTime.Parse()返回的DateTime中。
这需要一些字符串解析,但是使用一点regex就可以了……
发布于 2009-09-14 00:38:41
由于这不是标准格式字符串,但您知道确切的格式,因此可以使用DateTime.ParseExact并指定a custom format string,如下所示:
DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);“zzz”说明符表示与UTC的小时和分钟偏移量,最后两个零只是与您处理的格式相匹配的文字。
https://stackoverflow.com/questions/1419096
复制相似问题