我正在使用全球化格式化每個語言環境的日期時間。格式日期時間特定時區
var Globalize = require('globalize');
var formatter = Globalize('en-US').dateFormatter();
formatter(new Date());
它工作的很好,但我想知道如果我可以格式日期的具體時區。這樣,它總是在本地計算機時區中格式化日期。例如,假設我的機器時區是PST。我可以使用全球化來格式化EST中的日期嗎?
我正在使用全球化格式化每個語言環境的日期時間。格式日期時間特定時區
var Globalize = require('globalize');
var formatter = Globalize('en-US').dateFormatter();
formatter(new Date());
它工作的很好,但我想知道如果我可以格式日期的具體時區。這樣,它總是在本地計算機時區中格式化日期。例如,假設我的機器時區是PST。我可以使用全球化來格式化EST中的日期嗎?
被盜從here
此解決方案通過使用getTimeOffset()(返回UTC時間和本地時間之間的時間差,以分鐘爲單位)功能查找UTC時間給定位置的偏移和將其更改爲毫秒,然後從UTC執行計算以返回不同時區的時間。
/**
* function to calculate local time
* in a different city
* given the city's UTC offset
*/
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();
}
該解決方案可以正常工作,但在分鐘表示時區和調整UTC分鐘時更簡單。
請讓我知道這是否適合你!
javascript函數new date()
根據調用該函數時的機器時間生成日期/時間戳。因此,如果該功能是由阿拉斯加的一臺機器調用的,它將根據當時在阿拉斯加的當前時間生成日期/時間戳。
w3school.com對大多數與編碼有關的項目有很好的參考。你可以找到你的問題的答案here。
這不回答這個問題,w3schools不是最好的參考。 – epascarello
我剛開始習慣Stack Overflow。你能解釋爲什麼w3schools不被認爲是一個很好的參考?我使用它們來學習新事物。 –
圖書館是否有關於如何設置時區的文檔? – epascarello
時區不是格式,它(通常)是與UTC的偏移量,可以用許多不同的方式表示。常用的是非標準縮寫,如「EST」和「WAST」,軍事指示符如「K」和「Z」以及數字表示,如「+05:30」。 – RobG