【发布时间】:2014-03-03 01:06:37
【问题描述】:
我正在尝试解析我的应用程序中的 .ics 文件。我的应用程序有服务器端 java 层和客户端 javascript 部分。我正在使用 ical4j 库来解析它。
问题是事件的 DTSTART 有时不是 UTC 格式。并且每当它不在 UTC .ics 文件中时,我都会解析并从中获取 TZID 属性的 VTIMEZONE 组件。
Java 层最终将 JSON 发送到客户端。在上述情况下,DTSTART、DTEND 和 TZID 以 JSON 格式发送。
客户端必须使用 TZID 将 DTSTART 和 DTEND 转换为 UTC。我尝试使用 moment.js,因为我找不到任何其他可以做到这一点的 api。
moment.tz("2014-02-06 05:30", "NorthAmerica/Eastern").format()
下面的 moment.js 是我得到的错误,
TypeError: Cannot call method 'rule' of undefined
但下面的代码可以正常工作,
moment.tz("2014-02-06 17:30", "America/Toronto").format()
是否不能从 .ics 文件中按原样使用 TZID(即 NorthAmerica/Eastern)? 还有其他方法或 JS 库可以为我提供所有时区的 UTC 并考虑遵守吗?
【问题讨论】:
标签: javascript timezone icalendar momentjs rfc5545