javascript - 如何在 JavaScript 中的不同时区获取给定时间的本地时间
问题描述
我想在不同的时区获取给定时间的当地时间。我从 API获取时间 ( 6/12/2020 4:23:00 PM
) 和时区 ( )。America/New_York
如何使用这些值获取我的当地时间。
我找到了在不同时区获取时间的方法。
var aestTime = new Date().toLocaleString("en-US", {timeZone: "Australia/Brisbane"});
console.log('AEST time: '+ (new Date(aestTime)).toISOString())
但我需要反过来。
解决方案
Luxon(Moment 的现代继任者)可以轻松做到这一点:
const input = '6/12/2020 4:23:00 PM';
const format = 'M/d/yyyy h:mm:ss a';
const zone = 'America/New_York';
const original = luxon.DateTime.fromFormat(input, format, { zone });
const local = original.toLocal();
console.log(local.toString()); // an ISO 8601 formatted string
console.log(local.toFormat(format)); // or whatever format you wish
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/1.24.1/luxon.min.js"></script>
此外,要非常小心特定于区域设置的日期格式。我假设您的意思M/d/yyyy
是在美国使用,但在澳大利亚他们使用d/M/yyyy
. 将 6 月 12 日与 12 月 6 日混淆起来很容易。yyyy-MM-dd
在使用 API 时,您应该更喜欢格式化。
推荐阅读
- rust - ACCESS_VIOLATION 从 Rust 调用 Btrieve BTRCALL 函数
- reactjs - 检查用户是否在 azure AD B2C 用户流中注册或登录
- c# - 如何显示我创建的函数的结果?
- javascript - 循环认为是一个多维数组
- c# - C#获取当前登录用户在.net表单应用程序中的登录时间
- c - 将数字和字符串分成文本和数字
- java - GPU 上的 DL4J 示例不起作用(用于学校项目)
- node.js - 将 CVS 从 Web 保存到 Apify 数据集
- c# - 是否可以从给定类型创建 ICollection?
- haskell - 在 Kubernetes 中运行 Haskell 应用程序时没有 stdout/stderror 输出