簡體   English   中英

Momentjs:如何將一個時區的日期/時間轉換為 UTC 日期/時間

[英]Momentjs: How to convert date/time of one timezone to UTC date/time

我有一個帶時區的日期/時間,想將其轉換為 UTC

const date = '2019-04-10T20:30:00Z';
const zone = 'Asia/Kuala_Lumpur';
const utcDate = moment(date).tz(zone).utc().format();
console.log('UTC Date : ', utcDate);

我的日期變量是 UTC 的標准格式嗎? 如何將這個時區投射到另一個時區?

UTC 時區由后綴“Z”表示,因此您需要刪除"Z"並使用moment.tz(..., String)而不是moment().tz(String)因為第一個創建一個帶有時間的時刻zone 和第二個用於更改現有時刻的時區:

 const date = '2019-04-10T20:30:00'; const zone = 'Asia/Kuala_Lumpur'; const utcDate = moment.tz(date, zone).utc().format(); console.log('UTC Date : ', utcDate);
 <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.23/moment-timezone-with-data.min.js"></script>

function calcTime(city, offset) {

     // create Date object for current location
     var d = new Date();

     // convert to msec
     // add local time zone offset
     // get UTC time in msec
     var utc = d.getTime() + (d.getTimezoneOffset() * 60000);

     // create new Date object for different city
     // using supplied offset
     var nd = new Date(utc + (3600000*offset));

    // return time as a string
    return "The local time in " + city + " is " + nd.toLocaleString();
}

您可以像下面的代碼那樣執行此操作:

  // your inputs
    var date  = '2019-04-10T20:30:00Z';
    var desiredFormate   = "MM/DD/YYYY h:mm:ss A";  // must match the input
    var zone  = 'Asia/Kuala_Lumpur';

    // construct a moment object
    var m = moment.tz(date , desiredFormate, zone);
    // convert it to utc
    m.utc();

    // format it for output
    var s = m.format(fmt)  // result: 2017-08-31T08:45:00+06:00

您可以使用moment.js文檔:

moment().format('MMMM Do YYYY, h:mm:ss a'); // April 10th 2019, 3:29:36 pm
moment().format('dddd'); // Wednesday
moment().format("MMM Do YY"); // Apr 10th 19
moment().format('YYYY [escaped] YYYY'); // 2019 escaped 2019
moment().format();

 const date = new Date(); console.log(date); const zone = 'Asia/Karachi'; const utcDate = moment.tz(date, zone).utc().format(); console.log('UTC Date : ', utcDate);
 <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.23/moment-timezone-with-data.min.js"></script>

暫無
暫無

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

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