如何将IST时区对象添加到Moment.js

时间:2015-09-02 14:01:39

标签: javascript date timezone momentjs

我指的是http://momentjs.com/timezone/docs/#/using-timezones/

例如,它给出了以下位置:

moment.tz.add([
    'America/Los_Angeles|PST PDT|80 70|0101|1Lzm0 1zb0 Op0',
    'America/New_York|EST EDT|50 40|0101|1Lz50 1zb0 Op0'
]);

我不确定IST值是否为:

{
    name    : 'America/Los_Angeles',          // the unique identifier
    abbrs   : ['PDT', 'PST'],                 // the abbreviations
    untils  : [1414918800000, 1425808800000], // the timestamps in milliseconds
    offsets : [420, 480]                      // the offsets in minutes
}

有人可以帮助添加IST对象吗?

1 个答案:

答案 0 :(得分:21)

最简单的方法是使用其中一个包含moment-timezone home page时区数据的文件,例如moment-timezone-2010-2020.jsmoment-timezone-all-years.js(或缩小版本)。

但是,如果您愿意,可以只添加一个区域。您可以在上面列出的数据文件中找到区域的打包字符串。对于印度,完整的区域定义是:

moment.tz.add("Asia/Calcutta|HMT BURT IST IST|-5R.k -6u -5u -6u|01232|-18LFR.k 1unn.k HB0 7zX0");
moment.tz.link("Asia/Calcutta|Asia/Kolkata");

您可能需要或可能不需要该链接,具体取决于您正在做什么。

请注意,我认为“IST”表示印度标准时间,而不是Irish Standard Time or Israel Standard Time。当然,这些区域会有不同的数据。

此外,由于印度自1942年以来一直使用UTC + 5:30,您可能只希望使用固定偏移量 - 这将消除使用时刻时区的需要。只需使用utcOffset功能。例如,以下两个都将返回印度的当前时间。

moment().utcOffset("+05:30").format()

moment().utcOffset(330).format()