首页 > 解决方案 > 从所选时区到 UTC 的日期时间转换

问题描述

我开发了一个页面,用户可以在其中根据他们在过滤器中的选择来过滤记录。日期时间选择器允许用户选择特定的日期时间,下拉菜单允许用户选择他们希望将所选日期转换为 UTC 的时区。

例如,在我的计算机上,时区设置为 Asia/Karachi,其偏移量为 +5 UTC。但我想从下拉列表中选择 Europe/Prague 并选择 09/14/2021 3.30pm 作为日期时间。时间应转换为下午 1.20,因为欧洲/布拉格使用以下代码与 UTC 有 +2 的时间偏移。

var ddate = new Date(date.toLocaleString('en-US', {
    timeZone: 'Europe/Prague'
  }));

但是,这会产生 12.30 PM 作为时间。显然它正在从亚洲/卡拉奇(我的电脑时区)转换为欧洲/布拉格。但我希望根据用户从可用时区下拉列表中选择的时区将所选日期时间转换为 UTC。有没有可能的解决方案?我已经尝试了很多研究和编码,但还没有找到任何东西。

标签: javascriptdatetimetimezoneutc

解决方案


您是否尝试过时刻和时刻时区?也许是这样的:

import moment from "moment";
const myDate = "09/14/2021 3:30 PM";
const myTimeZone = "Europe/Prague";

let convertedTime = moment.tz(myDate, time_zone).format();

您可以将格式设置为("HH:mm A")


推荐阅读