【问题标题】:How to convert date to different timezone如何将日期转换为不同的时区
【发布时间】:2017-07-10 13:50:03
【问题描述】:

我有一个字符串格式的日期:

var x = '2017-07-11 12:00';
var timeZone = 'America/New_York'

现在如何根据时区格式化日期?我期待的是:

var y = someMagicalFunction(x,timeZone)
// y = '2017-07-10 14:30'

反之亦然:

var x = reverseOfMagicalFunction(y, 'Asia/Kolkata');
// x = '2017-07-11 12:00';

当 x 的类型为 Date 时,我使用 moment.tz 来获得结果。

var x1 = x.toISOString();
var y = moment.utc(x).tz(timezone).format('YYYY/MM/DD hh:mm:ss');

但在这种情况下无法获得 ReverseMagicalFucntion。有什么帮助吗?

【问题讨论】:

  • 不清楚你在问什么。你说你的 x 输入在America/New_York,但你没有说someMagicalFunction 在做什么。我所看到的是你得到的y 输出早于 21.5 小时 - 这对于 any 时区没有意义......(另外,你的输出中的hh 是对于 12 小时制,您可能需要 HH,除非您还要求提供上午/下午指示符)。
  • 我同意马特约翰逊的观点,你的问题有点不清楚,你在搜索如何在时区之间转换时刻对象吗?可能tz() docs 可以帮助您,this question 可以为您指明正确的方向。

标签: timezone momentjs


【解决方案1】:

当你使用 momentjs 时,你可以尝试类似 (Check Here):

moment(date).tz('Europe/Berlin').format(format);

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2016-11-01
    • 2019-09-07
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多