簡體   English   中英

如何使用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

II如何使用moment.jsmoment-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(字符串,模式,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-timezones/parsing-ambiguous-inputs/以處理DST

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM