【发布时间】:2017-05-04 07:09:37
【问题描述】:
我正在尝试将外国时间转换为当地时间。我在Europe/London 中获得了日期和时间。目前我正在使用时刻时区来让我的代码正常工作,但是它给了我一个错误的输出。
resultDate = new moment('2017-06-30T22:10:00').tz('Europe/London').format('YYYY-MM-DD HH:mm:ss');
我认为代码认为日期输入已经是本地时间,我需要将其转换为Europe/London,这将给出本地结果,而我想要的是将外国时间实际转换为本地时间。
简而言之,作为我输入的日期和时间 (2017-06-30T22:00:00),我预计它会提前 7 小时 (2017-07-1T05:00:00),因为我目前住在 Asia/Manila,比伦敦提前 7 小时。但是我得到了2017/06/30 15:00:00 +0100 作为我的结果。
我有没有办法利用我的代码中看到的'Europe/London' 或'Asia/Manila' 信息来做到这一点?
【问题讨论】:
-
尝试使用 'Z' 后缀以确保您的输入日期时间字符串为 UTC00,例如:resultDate = new moment('2017-06-30T22:10:00Z').tz('Europe /伦敦').format('YYYY-MM-DD HH:mm:ss');
-
@LajosGallay - 我已经尝试按照你提到的那样做。它给了我不同的结果,但仍然是错误的输出。它给了我 2017-06-30 23:00:00
-
@Light
2017-06-30T22:10:00是伦敦时间、马尼拉时间还是当地时间?你想要的输出是什么?输入转换为伦敦时间、马尼拉时间还是当地时间? -
@VincenzoC - 2017-06-30T22:10:00 是伦敦时间。我希望将那个时间转换为马尼拉时间。然而,如上所述,代码已将时间视为马尼拉时间,并从中减去 7 小时。如果这令人困惑,我深表歉意。
标签: javascript node.js momentjs