momentjs - moment tz 转换字符串
问题描述
这应该很简单,但我花了几个小时查看文档,但仍然一无所获。我有这个字符串:
var time = "2018-09-29 23:50:21"
这次是 UTC,尽管它没有这么说,但我知道它是。
我想用 .tz 将其转换为 PST (America/Los_Angeles)
我试过了:
moment(time).tz('America/Los_Angeles').format(MomentDefaults.DateTime);
我收到“2018 年 9 月 29 日 23:50”
我尝试了许多以不同方式失败的不同组合。
我希望能够打印“2018 年 9 月 29 日,16:50”,它time
以 utc 转换为 pst。
我错过了什么?
解决方案
你可以将你的time
字符串更改为实际有效的 ISO UTC 字符串,因为你确定它是?
var time = "2018-09-29T23:50:21.000Z"
console.log(moment(time).tz('America/Los_Angeles').format()) //16:50
console.log(moment(time).tz('America/New_York').format()) //19:50
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data.min.js"></script>
确保您根据文档加载了时区等数据:
在 Node.js 中,所有数据都是预加载的。加载数据不需要额外的代码。
在浏览器中使用 Moment Timezone 时,您需要加载数据以及库。
推荐阅读
- react-native - 如何创建与 expo 和 raw react-native 兼容的 NPM 包
- python-3.x - 使用 selenium 提取 WebTable
- javascript - Microsoft Graph:跨域令牌兑换仅适用于“单页应用程序”
- javascript - 与 Svg 垂直堆叠条形图反应(无第三方库)
- javascript - 使用 javascript/webSQL/SQLite 将 CSV 文件导入表
- ruby-on-rails - 使用 sidekiq `perform_in` 方法时使用 capybara 编写功能测试
- system-verilog - 包装中包含的 uvm 测试用例何时进行工厂注册
- java - 为什么我的程序有越界异常?
- java - 为什么这段代码在运行时不打印任何内容?
- javascript - 滚动固定侧边栏,然后在滚动后取消固定