如何在JavaScript中ISO 8601格式化带有时区偏移量的日期?
目标:找到 ,然后按以下格式构造 URL。local time
UTC time offset
网址示例:/Actions/Sleep?duration=2002-10-10T12:00:00−05:00
该格式基于 W3C 建议。文档说:
例如,2002-10-10T12:00:00−05:00(2002 年 10 月 10 日中午,美国中部夏令时和东部标准时间)等于 2002-10-10T17:00:00Z,比 2002-10-10T12:00:00Z 晚五个小时。
因此,根据我的理解,我需要找到我的本地时间,然后使用函数来计算差值,然后将其附加到字符串的末尾。new Date()
getTimezoneOffset()
-
获取本地时间
format
var local = new Date().format("yyyy-MM-ddThh:mm:ss"); // 2013-07-02T09:00:00
-
获取按小时偏移的 UTC 时间
var offset = local.getTimezoneOffset() / 60; // 7
-
构造 URL(仅限时间部分)
var duration = local + "-" + offset + ":00"; // 2013-07-02T09:00:00-7:00
以上输出表示我的本地时间为 2013/07/02 9am,与 UTC 的差异为 7 小时(UTC 比当地时间早 7 小时)
到目前为止,它似乎有效,但如果返回负值如-120怎么办?getTimezoneOffset()
我想知道在这种情况下格式应该是什么样子,因为我无法从W3C文档中找出答案。