第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 JavaScript 中將日期時(shí)間轉(zhuǎn)換為 UTC+1

如何在 JavaScript 中將日期時(shí)間轉(zhuǎn)換為 UTC+1

江戶川亂折騰 2022-01-07 21:11:40
我們?cè)?node-red 中創(chuàng)建了一個(gè)函數(shù),我們?cè)谄渲星謇韽膫鞲衅髟獢?shù)據(jù)接收到的日期時(shí)間。不幸的是,獲取的時(shí)區(qū)晚了一小時(shí),因此發(fā)送了“錯(cuò)誤的日期時(shí)間”。我們需要將此日期時(shí)間轉(zhuǎn)換為 UTC+1('Europe/Berlin')。該函數(shù)在 JavaScript 中,據(jù)我所知,我們不能使用諸如moment等第三方庫。希望這里有人可以幫助我們。提前致謝!這是我們迄今為止所做的:var time = msg.metadata.time;var datetime = new Date().toLocaleString();var timedate = new Date(time);var y = timedate.getFullYear().toString();var m = (timedate.getMonth() + 1).toString();var d = timedate.getDate().toString();(d.length == 1) && (d = '0' + d);(m.length == 1) && (m = '0' + m);timedate.setHours(timedate.getHours() + 1)var h = timedate.getHours().toString();var min = timedate.getMinutes().toString();var s = timedate.getSeconds().toString();(h.length == 1) && (h = '0' + h);(min.length == 1) && (min = '0' + min);(s.length == 1) && (s = '0' + s);var date = y+'-'+m+'-'+dvar time = h + ":" + min + ":" + s;var timeDate = date+' '+time;
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

我會(huì)考慮使用Date.toLocaleString()進(jìn)行日期/時(shí)間轉(zhuǎn)換。


現(xiàn)在 Moment.js 如果你可以使用它會(huì)更好,但你可以像下面這樣轉(zhuǎn)換時(shí)間。


請(qǐng)記住,您必須考慮 DST 更改,而使用您自己的代碼很難解釋這些更改(DST 切換的確切日期每年都在變化)。


例如,柏林從 10 月下旬到 3 月下旬使用 CET (UTC+1),從 3 月下旬到 10 月下旬使用 CEST (UTC+2)。


為什么我使用“sv”的語言環(huán)境,這是因?yàn)樗举|(zhì)上會(huì)給我們一個(gè) ISO 8601 時(shí)間戳。當(dāng)然,要轉(zhuǎn)換為文本,您可以使用任何語言環(huán)境。


我添加了一個(gè) getUTCOffsetMinutes 函數(shù),它將返回給定 UTC 時(shí)間和時(shí)區(qū)的 UTC 偏移量(以分鐘為單位)。


IANA 時(shí)區(qū)列表在這里:時(shí)區(qū)列表


const time = 1559347200000; // 2019-06-01T00:00:00Z


console.log("UTC time 1:", new Date(time).toISOString());

console.log("Berlin time 1 (ISO):", new Date(time).toLocaleString("sv", { timeZone: "Europe/Berlin"}));

console.log("Berlin time 1 (de):", new Date(time).toLocaleString("de", { timeZone: "Europe/Berlin"}));


const time2 = 1575158400000; // 2019-12-01T00:00:00Z

console.log("UTC time 2:", new Date(time2).toISOString());

console.log("Berlin time 2 (ISO):", new Date(time2).toLocaleString("sv", { timeZone: "Europe/Berlin"}));

console.log("Berlin time 2 (de):", new Date(time2).toLocaleString("de", { timeZone: "Europe/Berlin"}));



// You can also get the UTC offset using a simple enough function: 

// Again, this will take into account DST 


function getUTCOffsetMinutes(unixDate, tz) {

  const localTimeISO = new Date(unixDate).toLocaleString("sv", {timeZone: tz}).replace(" ", "T") + "Z";

  return (new Date(localTimeISO).getTime() - unixDate) / 60000; // Milliseconds to minutes.

}


console.log("UTC offset minutes (June/Berlin):", getUTCOffsetMinutes(time, "Europe/Berlin"));

console.log("UTC offset minutes (June/LA):", getUTCOffsetMinutes(time, "America/Los_Angeles"));

console.log("UTC offset minutes (June/Sydney):",getUTCOffsetMinutes(time, "Australia/Sydney"));


console.log("UTC offset minutes (December/Berlin):", getUTCOffsetMinutes(time2, "Europe/Berlin"));

console.log("UTC offset minutes (December/LA):", getUTCOffsetMinutes(time2, "America/Los_Angeles"));

console.log("UTC offset minutes (December/Sydney):", getUTCOffsetMinutes(time2, "Australia/Sydney"));


查看完整回答
反對(duì) 回復(fù) 2022-01-07
?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

我使用我制作的這個(gè)功能,我認(rèn)為它可以幫助你:


function formatDateToOffset(date, timeOffset){

    var dateInfo, timeInfo;


    // change date's hours based on offset

    date.setHours(date.getHours() + (timeOffset || 0))

    // place it the way you want to format

    dateInfo = [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()]

    timeInfo = [date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()];


    // return the string formatted date

    return dateInfo.join("-") + " " + timeInfo.join(":");

}

console.log(formatDateToOffset(new Date(), 1))


查看完整回答
反對(duì) 回復(fù) 2022-01-07
  • 2 回答
  • 0 關(guān)注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)