【问题标题】:Transpose date into local timezone without shifting the date将日期转换为本地时区而不改变日期
【发布时间】:2017-05-17 14:29:28
【问题描述】:

我在字符串中有一个带有特定时区的输入日期。例如:

Sat May 20 2017 17:00:00 GMT-0300 (-03)

我想将此日期的时区更改为我的本地时区而不转换时间。好像输入日期在我的正确时区。

Sat May 20 2017 17:00:00 GMT+0200 (CEST)

我玩了一下,发现了这个:

const date = moment(moment.utc('Sat May 20 2017 17:00:00 GMT-0300 (-03)').format('LLL'))

这是最简单的方法吗?我不喜欢 moment 对象的副本,但我找不到“单发”的方法。

【问题讨论】:

    标签: javascript momentjs


    【解决方案1】:

    要在本地时间解析您的输入,您可以简单地使用moment(String, String) 函数。正如docs 所说:

    默认情况下,moment 解析并显示为当地时间。

    这是一个现场样本:

    var input = 'Sat May 20 2017 17:00:00 GMT-0300 (-03)';
    var m = moment(input, 'ddd MMM DD YYYY HH:mm:ss');
    console.log(m.format());
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

    【讨论】:

    • 谢谢。这里的关键是指定输入格式以删除时区解析。从来没想过。
    猜你喜欢
    • 2014-01-28
    • 2021-05-02
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多