首页 > 解决方案 > 使用时刻将字符串日期和时间转换为基于时区的 UTC

问题描述

我在nodejs服务器中使用时刻将本地时间从前端转换为UTC。

我的时间格式是date = '10-07-2020 08:45 PM'字符串格式。当我使用moment(date).format()它的转换格式到这个2020-10-07 20:45:00+05:30时区时,是基于服务器添加的,我有timezone = '+4:00'这是我的本地时区。我想根据timezone不基于服务器时区的字段将我的日期字符串转换为 UTC。我怎样才能做到这一点?

我尝试了以下方法,但没有得到正确的解决方案

moment.utc(moment(date).utcOffset(timezone)).format('YYYY-MM-DD HH:mm:ss')

任何人请建议

标签: javascriptnode.jsmomentjsmoment-timezone

解决方案


您可以使用moment-timezone从字符串和特定时区创建日期。为此,您需要指定格式和相应的时区。像这样的东西:

const date = moment.tz("10-07-2020 08:45 pm", "M-D-YYYY hh:mm a", "Europe/Samara");
console.log(date.toISOString());
<script src="https://momentjs.com/downloads/moment.min.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.min.js"></script>


推荐阅读