java 时区_世界时区和Java时区详解
0、引言
Druid中時(shí)區(qū)的問題一直困擾著我們,所以我專門去研究了一下世界時(shí)區(qū)和Java中的時(shí)區(qū),對(duì)使用Druid很用幫助.
1、UTC時(shí)間&GMT時(shí)間
UTC時(shí)間是時(shí)間標(biāo)準(zhǔn)時(shí)間(Universal Time Coordinated),UTC是根據(jù)原子鐘來計(jì)算時(shí)間,誤差非常小。
UTC也是指零時(shí)區(qū)的時(shí)間,如果要表示其他時(shí)區(qū)的時(shí)間,這里要注意沒有UTC+0800或者UTC+8這樣的表示方式(至少Java里面沒有,一般用于口頭表示),只有Asia/Shanghai這樣的表示方式,詳細(xì)的時(shí)區(qū)列表參考這個(gè)文檔時(shí)區(qū)列表?,不要問我為什么沒有北京時(shí)區(qū)。。。
GMT時(shí)間是根據(jù)地球的自轉(zhuǎn)和公轉(zhuǎn)來計(jì)算時(shí)間,老的時(shí)間計(jì)量標(biāo)準(zhǔn),這里我們不過多討論
2、表達(dá)時(shí)間方式
我們一般表示時(shí)間都會(huì)帶格式以方便理解,例如時(shí)間表達(dá)式是'2018-09-12 08:00:00',因?yàn)槲覀冊(cè)跂|八區(qū),所以默認(rèn)是:北京時(shí)間2018年9月12號(hào)8點(diǎn)整。但是如果是一個(gè)美國人看到這個(gè)時(shí)間,就會(huì)認(rèn)為是美國東部or西部時(shí)間的2018年9月12號(hào)8點(diǎn)整。所以從這種表達(dá)方式很不準(zhǔn)確,因?yàn)闆]有指明到底是哪個(gè)時(shí)區(qū)的時(shí)間!!!!
所以準(zhǔn)確的表達(dá)時(shí)間必須帶有時(shí)區(qū),例如2018-09-12 08:00:00+0800,表達(dá)了Asia/Shanghai這個(gè)時(shí)區(qū)的時(shí)間2018年9月12號(hào)8點(diǎn)整。這里要注意+0800并不是表示加8小時(shí)的意思,只是表示這個(gè)時(shí)間'2018-09-12 08:00:00'是東八區(qū)Asia/Shanghai的時(shí)間,僅此而已。
3、UTC時(shí)間的時(shí)間戳
總結(jié)
以上是生活随笔為你收集整理的java 时区_世界时区和Java时区详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于瀚高数据库的适配
- 下一篇: java美元兑换,(Java实现) 美元