用momentjs将日期从一个时区转换为另一个时区



我有一个日期时间,例如2020年11月22日04:59(GMT+10:00(澳大利亚/ACT(东部标准时间(新南威尔士州((,现在我想在(GMT+3:00(亚洲/科威特(阿拉伯标准时间(获得该时间的等效日期。我正在使用moment js。请建议

我们可以使用moment.tz构造函数解析您的ACT时间,然后我们可以克隆并转换到科威特时区。

const actTime = moment.tz("22 Nov 2020, 04:59", "DD MMM YYYY, HH:mm", "Australia/ACT");
const kuwaitTime = actTime.clone().tz("Asia/Kuwait");
console.log("Moment.js:");
console.log("ACT Time:", actTime.format("YYYY-MM-DD HH:mm"));
console.log("Kuwait Time:", kuwaitTime.format("YYYY-MM-DD HH:mm"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.25/moment-timezone-with-data-10-year-range.js"></script>

我们也可以使用相当棒的新Luxon模块来做同样的事情(Luxon可以被认为是Moment的进化。它由Moment的长期贡献者Isaac Cambron撰写。(

const { DateTime } = luxon;
const actTime = DateTime.fromFormat("22 Nov 2020, 04:59", "dd MMM yyyy, HH:mm", { zone: "Australia/ACT"});
const kuwaitTime = actTime.setZone("Asia/Kuwait")
console.log("Luxon:");
console.log("ACT Time:", actTime.toFormat("yyyy-MM-dd HH:mm"));
console.log("Kuwait Time:", kuwaitTime.toFormat("yyyy-MM-dd HH:mm"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/1.25.0/luxon.min.js" integrity="sha512-OyrI249ZRX2hY/1CAD+edQR90flhuXqYqjNYFJAiflsKsMxpUYg5kbDDAVA8Vp0HMlPG/aAl1tFASi1h4eRoQw==" crossorigin="anonymous"></script>

最新更新