UTC & GWT 時間轉(zhuǎn)化為當?shù)貢r區(qū)時間(java & js & javascript)

一住练、基本概念

1蝉娜、格林威治時間(GWT)

格林威治子午線上的地方時偿警,位于倫敦郊區(qū)的皇家格林尼治天文臺的標準時間刺桃,也叫世界時茶袒。比如我們中國是東八區(qū)吏颖,北京時間是(GMT+08:00)

2序芦、協(xié)調(diào)世界時間(UTC)
UTC是根據(jù)原子鐘來計算時間吞彤,現(xiàn)在世界上最精確的原子鐘50億年才會誤差1秒丁恭,可以說非常精確曹动。

3、北京時間(CST)
中國時間的標準牲览。

4墓陈、太平洋時間(PST)

是在美國、加拿大第献、墨西哥西海岸靠近太平洋的地區(qū)使用贡必,也被稱為太平洋時區(qū)。

相比較而言:個人理解 UTC 是標準時間參照庸毫,GMT(格林威治時間)仔拟、CST(北京時間)、PST(太平洋時間)等等是具體的時區(qū)飒赃。因為GMT是根據(jù)地球的自轉(zhuǎn)和公轉(zhuǎn)來計算時間利花,而地球的自轉(zhuǎn)正在緩速變慢,所以使用GMT的話载佳,總有一天炒事,打個比方,中午12點蔫慧,并不是一天太陽當頭照的時候挠乳,很可能就是早上或者晚上了。所以說UTC更加精確藕漱。

二欲侮、夏令時

是一種為節(jié)約能源而人為規(guī)定地方時間的制度。也叫夏時制肋联,夏時令(Daylight Saving Time:DST)威蕉,又稱“日光節(jié)約時制”和“夏令時間”,在這一制度實行期間所采用的統(tǒng)一時間稱為“夏令時間”橄仍。一般在天亮早的夏季人為將時間調(diào)快一小時韧涨,可以使人早起早睡牍戚,減少照明量,以充分利用光照資源虑粥,從而節(jié)約照明用電如孝。各個采納夏時制的國家具體規(guī)定不同。目前全世界有近110個國家每年要實行夏令時娩贷。
據(jù)稱最早有夏令時構(gòu)思的是本杰明·富蘭克林

三第晰、時區(qū)的處理:

服務器時間是東八區(qū)時間,前端頁面會在全世界各地時區(qū)彬祖。
為兼容世界各地時間茁瘦,需要:

  • 1.服務器拉取的北京時間轉(zhuǎn)為本地時區(qū)的時間。
  • 2.將用戶本地時間轉(zhuǎn)換為北京時間傳給服務器储笑。

公式:都轉(zhuǎn)換成零時區(qū)的時間(UTC時間)
其他時區(qū)時間 + 其他時區(qū)時差 = 本地時間 + 本地時差 = UTC時間 = GWT時間

JS & Javascript代碼:

/**
 * 判斷是否為夏令時
 * @param date
 * @returns {boolean}
 */
function isSummerTime(date) {
  const springTime = new Date(date.getFullYear(), 0, 1);
  const summerTime = new Date(date.getFullYear(), 6, 1);
  if (springTime.getTimezoneOffset() 
      === summerTime.getTimezoneOffset() 
      === date.getTimezoneOffset()) {
    return false;
  } else {
    return true;
  }
}
/**
 * 北京時間轉(zhuǎn)本地時間
 */
function getLocalDate(east8date) {
  const targetTimezone = -8;
  const dif = new Date().getTimezoneOffset();
  let localTime = east8date.getTime() 
  + (targetTimezone * 60 * 60 * 1000) - dif * 60 * 1000;
  localTime -= (isSummerTime(east8date) ? 60 * 60 * 1000 : 0);
  return new Date(localTime);
}
/**
 * 本地時間轉(zhuǎn)北京時間
 */
function getEast8Date(date) {
  const targetTimezone = -8;
  const dif = new Date().getTimezoneOffset();
  let east8time = date.getTime() + dif * 60 * 1000 
  - (targetTimezone * 60 * 60 * 1000);
  east8time += (isSummerTime(date) ? 60 * 60 * 1000 : 0);
  return new Date(east8time);
}

Java代碼:

/**
     * 系統(tǒng)時區(qū)時間轉(zhuǎn)成北京時區(qū)的時間發(fā)給云端
     * 云端獲取的北京時區(qū)時間轉(zhuǎn)成系統(tǒng)時區(qū)的時間顯示
     */
    public static Calendar timeZoneToCalendar(Calendar calendar,cboolean toBeijingOrLocal) {
        int timeOffset;
        if (toBeijingOrLocal) {
            timeOffset = TimeZone.getDefault().getOffset(System.currentTimeMillis()) 
            - TimeZone.getTimeZone("GMT+08").getRawOffset();
        } else {
            timeOffset = TimeZone.getTimeZone("GMT+08").getRawOffset() 
            - TimeZone.getDefault().getOffset(System.currentTimeMillis());
        }
        Calendar zoneCalendar = Calendar.getInstance();
        long timeInMilis = calendar.getTimeInMillis() - timeOffset;
        zoneCalendar.setTimeInMillis(timeInMilis);
        return zoneCalendar;
    }

四甜熔、夏令時實行國家:

1. 國內(nèi):

從1986年到1991年的六個年度,在全國范圍內(nèi)實行夏時制突倍,1992年起腔稀,夏令時暫停實行。

2.國際:

  • 俄羅斯

2011-2014使用夏令時

  • 美國

美國夏時制的實行與否羽历,完全由各州焊虏、各縣自行決定,不由聯(lián)邦政府統(tǒng)一規(guī)定窄陡。目前美國絕大部分地區(qū)實行夏令時炕淮。

  • 歐盟國家

歐盟國家和瑞士都是從3月最后一個星期日到10月最后一個星期日實行夏令時。

  • 加拿大

加拿大從3月第二個星期日到11月第一個星期日實行夏令時跳夭,不過薩斯喀徹溫省大部分地區(qū)不實行涂圆。

  • 墨西哥

墨西哥從4月第一個星期日到10月最后一個星期日實行夏令時,不過在首都墨西哥城币叹,由于市長不同意總統(tǒng)實行夏令時的決定润歉,有的區(qū)服從總統(tǒng)實行夏令時,有的區(qū)則服從市長不實行夏令時颈抚。

  • 新西蘭

新西蘭由于處于南半球踩衩,所以夏季和北半球相反。它從9月最后一個星期日到4月第一個星期天實行夏時贩汉。

  • 澳大利亞

澳大利亞除北部地區(qū)驱富、昆士蘭州和西澳(佩斯、珀斯)之外全部實行夏令時匹舞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末褐鸥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赐稽,更是在濱河造成了極大的恐慌叫榕,老刑警劉巖浑侥,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晰绎,居然都是意外死亡寓落,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門荞下,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伶选,“玉大人,你說我怎么就攤上這事锄弱】祭伲” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵会宪,是天一觀的道長。 經(jīng)常有香客問我蚯窥,道長掸鹅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任拦赠,我火速辦了婚禮巍沙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荷鼠。我一直安慰自己句携,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布允乐。 她就那樣靜靜地躺著矮嫉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牍疏。 梳的紋絲不亂的頭發(fā)上蠢笋,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音鳞陨,去河邊找鬼昨寞。 笑死,一個胖子當著我的面吹牛厦滤,可吹牛的內(nèi)容都是我干的援岩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼掏导,長吁一口氣:“原來是場噩夢啊……” “哼享怀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碘菜,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤凹蜈,失蹤者是張志新(化名)和其女友劉穎限寞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仰坦,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡履植,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悄晃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玫霎。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妈橄,靈堂內(nèi)的尸體忽然破棺而出庶近,到底是詐尸還是另有隱情,我是刑警寧澤眷蚓,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布鼻种,位于F島的核電站,受9級特大地震影響沙热,放射性物質(zhì)發(fā)生泄漏叉钥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一篙贸、第九天 我趴在偏房一處隱蔽的房頂上張望投队。 院中可真熱鬧,春花似錦爵川、人聲如沸敷鸦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扒披。三九已至,卻和暖如春兔甘,著一層夾襖步出監(jiān)牢的瞬間谎碍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工洞焙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蟆淀,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓澡匪,卻偏偏與公主長得像熔任,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子唁情,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 概念解釋 時區(qū)(Timezone) 為什么會將地球分為不同時區(qū)呢疑苔?因為地球總是自西向東自轉(zhuǎn),東邊總比西邊先看到太陽...
    黑炭媽閱讀 6,721評論 0 5
  • 摘要:本文總結(jié)幾類項目中跟時區(qū)相關(guān)的問題甸鸟,給大家分享一些基本的時區(qū)知識惦费,以及如何在軟件開發(fā)和測試中注意考慮時區(qū)因素...
    BY林子閱讀 729評論 1 1
  • 時間(date time)應該是一個精確的點兵迅,以便能夠進行比較。但是如何能讓他成為一個精確的點呢薪贫?一般的恍箭,如果需要...
    遠程板磚閱讀 1,854評論 1 8
  • 時區(qū)轉(zhuǎn)換 主要介紹一下 Java 時區(qū)轉(zhuǎn)換相關(guān)的一些概念,和轉(zhuǎn)換示例瞧省。 由于夏令時的存在扯夭,應該通過Java 或者 ...
    迷路的老山羊閱讀 1,913評論 1 4
  • 1、CSS 的全稱是什么鞍匾? CSS全稱Cascading Style Sheets交洗,即層疊樣式表,用于為HTML文...
    七_五閱讀 240評論 0 1