UTC到CST转换使用moment.js



我正在尝试使用moment.js将UTC时间中的事件开始日期转换为美国/芝加哥时间

给定的起始日期输入为'2021-02-10T03:05:00Z'。

我正在尝试将该输入转换为CST 9:00PM的'2012-02-09'开始时间。

任何输入都是赞赏的!

您所需要做的就是像这样设置时区

var moment = require('moment-timezone');
moment('2021-02-10T03:05:00Z').tz("America/Los_Angeles").format('LL');

timeZone不是您要查找的,要获得timeZone名称列表,您需要调用moment.tz.zonesForCountry('US');

它会给你一个你所在国家的所有时区的列表,然后你只需要为芝加哥选择一个正确的时区,然后你可以按照你想要的格式显示它。

您可以使用moment-timezone。下面是工作代码示例:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.7/moment-timezone-with-data-2010-2020.min.js"></script>
<div id="utc-time">09/02/2021 12:40:35 PM</div>
<div id="cst-time"></div>
<div id="aus-time"></div>
var dt = document.getElementById("utc-time").innerHTML;  
var m = moment.utc(dt, "DD-MM-YYYY h:mm:ss A"); // parse input as UTC
console.log(m.clone().local().format("DD-MM-YYYY h:mm:ss A")); // local time
document.getElementById("utc-time").innerHTML = m.clone().local().format("DD-MM-YYYY h:mm:ss A (Z)");
var tz = 'America/New_York'; // timezone value, you can use moment.tz.guess() for automatic detection
document.getElementById("cst-time").innerHTML = m.clone().tz(tz).format("DD-MM-YYYY h:mm:ss A (Z)");
tz = 'Australia/Perth'; // test another timezone
document.getElementById("aus-time").innerHTML = m.clone().tz(tz).format("DD-MM-YYYY h:mm:ss A (Z)");

工作小提琴:https://jsfiddle.net/9c2f068z/

最新更新