时区偏移显示错误的日期和时间

时间:2018-10-03 06:11:51

标签: javascript timezone momentjs timezone-offset

我正在尝试根据用户本地时区显示时间。服务器节省了到utc的时间。

因此,我在数据库中保存了一个日期时间。

2018-10-03 05:55:51 // my server is digital ocean

因此,现在我正在尝试控制台用户本地时间。我的时区设置为 Sylhet Bangladesh 时间偏移为-360

var offset = new Date().getTimezoneOffset();
console.log(offset) // offset is -360
var testDateUtc = moment.utc("2018-10-03 05:55:51");
var localDate = moment(testDateUtc).utcOffset(offset);
console.log(localDate.format("YYYY-DD-MM hh:mm:ss"));

以上代码打印的日期不正确,但时间正确。 2018-02-10 11:55:51日期错误。

然后我将Mac的时区更改为Dubai的{​​{1}}

对于迪拜,偏移量为2 hours different then my country,它显示时间 -240表示日期正确,但时间不正确。

请帮助。谢谢。

编辑 它适用于我测试过的大多数国家 2018-03-10 01:55:51,因此它总是使它变得积极

1 个答案:

答案 0 :(得分:1)

您无需考虑偏移量。时刻可以为您做到这一点:

Scenario Outline: Check Request and Response 

Given url 'http://abc/web/juk/nmr/Accounts('<accountNumber>')'
    When method GET
    Then status 200
    And match $ == read('AccountResponse.json')
    And print 'response: ', response

此外,请记住,当您要求代码中的偏移量时,您要求的是 current 偏移量,该偏移量可能是也可能不是转换时有效的偏移量。请参见the timezone tag wiki中的“偏移!=时区”。