首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c#解析iCalendar日期

使用c#解析iCalendar日期
EN

Stack Overflow用户
提问于 2009-09-13 23:13:18
回答 3查看 3.2K关注 0票数 1

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

代码语言:javascript
复制
2009-08-11T10:00+05:0000

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-14 00:07:28

代码语言:javascript
复制
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解析。

票数 1
EN

Stack Overflow用户

发布于 2009-09-13 23:40:31

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

这需要一些字符串解析,但是使用一点regex就可以了……

票数 0
EN

Stack Overflow用户

发布于 2009-09-14 00:38:41

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

代码语言:javascript
复制
DateTime.ParseExact(d, "yyyy-MM-ddTHH:mmzzz00", CultureInfo.InvariantCulture);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1419096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档