如何使用moment.js和moment-timezone.js将特定时区(非本地)的给定日期/时间转换为UTC
How to convert a given date/time for a specific timezone (not local) to UTC using moment.js and moment-timezone.js
如何使用moment.js
和moment-timezone.js
将特定时区(非本地)的给定日期/时间转换为UTC
我使用:
var s = moment("10/15/2014 09:25 AM").tz("America/Los_Angeles").format('hh:mm:ss a');
当我想给出moment()
的值时,我遇到了一个困难
让我向你解释一下事实:
我必须从具有以下格式的单元格中获取日期/时间值:10/15/2014 09:25 AM (MM/DD/YYYY h:mm a)
。此值不是一个常量,它是某些条目的打开时间。我想用UTC转换这个字符串。不幸的是,字符串不是我的本地时间,在America/Los_Angeles (PDT/PST)
时区。我还想自动处理PDT(9 Mar, 2 Nov)
和PST
-10/15/2014 09:25 AM America/Los_Angeles -07:00 => 10/15/2014 04:25 PM UTC 00:00
-12/15/2014 09:25 AM America/Los_Angeles -08:00 => 12/15/2014 05:25 PM UTC 00:00
我该怎么做?
如果我使用:Var s = moment("10/15/2014 09:37 PM").tz("America/Los_Angeles").format('hh:mm:ss a');
…它将被解析为我的本地时间,并将被转换为America/Los_Angeles
- 10/15/2014 09:25 AM Eastern European Time +03:00 => 10/15/2014 11:25 PM America/Los_Angeles +07:00
我认为对我的问题的简短描述是:
-我如何"告诉"脚本这个字符串10/15/2014 09:37 AM
来自一个特定的时区。在此之后,转换为UTC
是小菜一碟。
谢谢。
当您想要分析具有特定时区(UTC除外)的日期字符串时,必须提供模式。对于UTC,您只需提供日期字符串。
用法:moment.tz(string,pattern,zoneString)
在您的情况下:
var moment = require("moment-timezone");
var d1 = moment.tz("10/15/2014 09:25 AM", "MM/DD//YYYY hh:mm A", "America/Los_Angeles");
d1.toString(); // Wed Oct 15 2014 09:25:00 GMT-0700
d1.tz("UTC").format('hh:mm:ss a'); // '04:25:00 pm'
如果省略格式化程序,则解析是错误的,但有一条不推荐使用的注释:https://github.com/moment/moment/issues/1407
阅读此http://momentjs.com/timezone/docs/#/using-时区/解析不明确的输入/处理DST
- 如何获得一个只有时间的moment.js日期对象
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 将JS日期解析为C#日期时间
- JS-日期检查
- JS日期对象setUTCMonth()将月份增加2
- JS日期对象在某个范围内的百分比
- 如何创建一个考虑时区Node.JS/javascript的JS日期对象
- 格式化moment.js日期的奇怪行为
- 分机.js日期格式区域设置
- 谁能解释为什么我的日期函数通过 JS 日期对象给了我错误的转换
- JS日期CET与GMT的比较
- 哪个 JS 日期时间选取器正确处理 DST 转换
- 在引导 UI 日期选取器中允许 Moment.js 日期
- 如何从时刻.JS日期中删除时间
- 将 JS 日期对象发送到 PHP
- JS日期选择器能够:时间,日期,日期时间,星期几,一年中的一周,一年中的月份等
- 流星:如何让 JS 日期范围选择器调整 API 调用日期参数
- 时刻.js日期到时间戳国际化(德语)
- 向 js 日期对象添加分钟时出错
- 如何让D3数据驱动文档在正确的时区显示moment.js日期时间