亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用偏移量將 YYYYMMDDHHMMSS 轉換為 UTC

如何使用偏移量將 YYYYMMDDHHMMSS 轉換為 UTC

慕村225694 2023-07-06 16:39:20
我在具有 localTimeStamp 和 UTC 偏移量的對象中獲取日期,如下所示。obj = { "localTimeStamp": 20200908232201 //YYYYMMDDHHMMSS "utcTimeOffset" : "+0630"}如何將其轉換為本地日期時間 - 格式 DD-MM-YYYY HH:MM:SSUTC 日期時間 - 格式 DD-MM-YYYY HH:MM:SS我嘗試過以下解決方案,但如何在 UTC 中轉換。"20200908232201".replace(/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/,'$2-$3-$1 $4:$5:$6');
查看完整描述

4 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

如果您不想使用任何庫,那么您可以嘗試以下方法:


您已經有了所需格式的日期 - (DD-MM-YYY HH:MM:SS)。


let utcTimeOffset = '+0630';


  var d = new Date(

  '20200908232201'.replace(

    /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/,

    '$2-$3-$1 $4:$5:$6'

  ) + utcTimeOffset

);

然后使用UTC上述日期將日期轉換為 UTC:


var utcDate = new Date(

  Date.UTC(

    d.getUTCFullYear(),

    d.getUTCMonth(),

    d.getUTCDate(),

    d.getUTCHours(),

    d.getUTCMinutes(),

    d.getUTCSeconds()

  )

);

最后使用以下格式以所需的格式打印日期 -


var MyDateString =

  ('0' + utcDate.getUTCDate()).slice(-2) +

  '-' +

  ('0' + (utcDate.getUTCMonth() + 1)).slice(-2) +

  '-' +

  utcDate.getUTCFullYear() +

  ' ' +

  ('0' + utcDate.getUTCHours()).slice(-2) +

  '-' +

  ('0' + utcDate.getUTCMinutes()).slice(-2) +

  '-' +

  ('0' + utcDate.getUTCSeconds()).slice(-2);


console.log(MyDateString); //08-09-2020 16-52-01

let utcTimeOffset = '+0630';


var d = new Date(

  '20200908232201'.replace(

    /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/,

    '$2-$3-$1 $4:$5:$6'

  ) + utcTimeOffset

);


var utcDate = new Date(

  Date.UTC(

    d.getUTCFullYear(),

    d.getUTCMonth(),

    d.getUTCDate(),

    d.getUTCHours(),

    d.getUTCMinutes(),

    d.getUTCSeconds()

  )

);



var MyDateString =

  ('0' + utcDate.getUTCDate()).slice(-2) +

  '-' +

  ('0' + (utcDate.getUTCMonth() + 1)).slice(-2) +

  '-' +

  utcDate.getUTCFullYear() +

  ' ' +

  ('0' + utcDate.getUTCHours()).slice(-2) +

  '-' +

  ('0' + utcDate.getUTCMinutes()).slice(-2) +

  '-' +

  ('0' + utcDate.getUTCSeconds()).slice(-2);


console.log(MyDateString);


查看完整回答
反對 回復 2023-07-06
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

您可以嘗試使用Luxon庫,它實際上是 moment.js 的繼承者,并且具有許多強大的日期處理功能。

特別是,我們可以使用DateTime.fromFormat函數來解析提供的日期。

const DateTime = luxon.DateTime;

const obj = {

? ? ?"localTimeStamp": 20200908232201, //YYYYMMDDHHMMSS

? ? ?"utcTimeOffset" : "+0630"

}


const dt = DateTime.fromFormat(obj.localTimeStamp + obj.utcTimeOffset, "yyyyMMddHHmmssZZZ", { setZone: true } );

console.log("Local time:", dt.toISO())

console.log("UTC Time:", dt.toUTC())

<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/1.25.0/luxon.min.js" integrity="sha512-OyrI249ZRX2hY/1CAD+edQR90flhuXqYqjNYFJAiflsKsMxpUYg5kbDDAVA8Vp0HMlPG/aAl1tFASi1h4eRoQw==" crossorigin="anonymous"></script>


查看完整回答
反對 回復 2023-07-06
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您可以對 localTimeStamp 進行切片

const obj = {

? ? "localTimeStamp": "20200908232201",

? ? "utcTimeOffset": "+0630"

};

let localTimeStamp = obj.localTimeStamp;

let utcTimeOffset = obj.utcTimeOffset;

let formattedDate = new Date(localTimeStamp.slice(0, 4), localTimeStamp.slice(4, 6) - 1, localTimeStamp.slice(6, 8), localTimeStamp.slice(8, 10), localTimeStamp.slice(10, 12), localTimeStamp.slice(12, 14));

let formattedDateToLocal = new Date(formattedDate + utcTimeOffset);

let formattedDateToUTC = new Date(formattedDate.toUTCString() + utcTimeOffset);

? ?

console.log(`UTC : ${formattedDateToUTC.getDate()}-${formattedDateToUTC.getMonth()}-${formattedDateToUTC.getFullYear()} ${formattedDateToUTC.getHours()}:${formattedDateToUTC.getMinutes()}:${formattedDateToUTC.getSeconds()}`)

console.log(`Local : ${formattedDateToLocal.getDate()}-${formattedDateToLocal.getMonth()}-${formattedDateToLocal.getFullYear()} ${formattedDateToLocal.getHours()}:${formattedDateToLocal.getMinutes()}:${formattedDateToLocal.getSeconds()}`)



查看完整回答
反對 回復 2023-07-06
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

const obj = {

  localTimeStamp: 20200908232201,

  utcTimeOffset : "+0630"

};


const date = new Date((new Date(obj.localTimeStamp)).toUTCString() + obj.utcTimeOffset);


console.log(date.toUTCString());

console.log(date.toLocaleString());


查看完整回答
反對 回復 2023-07-06
  • 4 回答
  • 0 關注
  • 266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號