如何在Javascript中将日期的时区更改为本地时区?

时间:2017-09-18 10:50:18

标签: javascript date

我目前的日期是Mon Jul 03 2017 10:17:40 GMT+0530(印度标准时间)。

我想将此日期转换为特定的时区和区域设置,具体取决于用户,例如GMT+00:00

如何将指定日期转换为特定于用户的格式?

3 个答案:

答案 0 :(得分:2)

您可以使用Moment.js' localized formats根据区域设置显示日期 要检测当前用户区域设置,请参阅this question

请注意,您必须手动加载区域设置或使用内置区域设置的版本构建(the homepage上的moment-with-locales.js)。

鉴于上面的例子:



const locale = window.navigator.userLanguage || window.navigator.language
moment.locale(locale)
console.log('locale: ' + moment.locale())

const format = 'LLLL ZZ'
console.log(moment().format(format))

<script src="https://cdn.rawgit.com/moment/moment/b8a7fc31/min/moment-with-locales.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

Momentjs时区文档中有很多样本。

moment.tz('America/Los_Angeles').format('z')  // "PDT"     (abbreviation)
moment.tz('Asia/Magadan').format('z')         // "+11"     (3-char offset)
moment.tz('Asia/Colombo').format('z')         // "+0530"   (5-char offset)

链接:

https://momentjs.com/timezone/docs/

答案 2 :(得分:-1)

你可以试试这个

var date = new Date();
//getTimezoneOffset() gives difference in minutes between your timezone and GMT, multiplying it by 60*1000 converts it to milliseconds
var utc_time = new Date(date.valueOf() + date.getTimezoneOffset() * 60000);
var offset = destination_timezone_offset_in_milliseconds;
var time_in_required_timezone = new Date(utc_time.valueOf()+offset);