我正在尝试解析我的应用程序中的 .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 并考虑遵守吗?