最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java時區(qū)轉(zhuǎn)換及Date類實現(xiàn)原理解析

 更新時間:2019年11月30日 16:35:26   作者:程序曉猿  
這篇文章主要介紹了Java時區(qū)轉(zhuǎn)換及Date類實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Java時區(qū)轉(zhuǎn)換及Date類實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一、時區(qū)的說明

地球表面按經(jīng)線從東到西,被劃成一個個區(qū)域,規(guī)定相鄰區(qū)域的時間相差1小時。在同一區(qū)域內(nèi)的東端和西端的人看到太陽升起的時間最多相差不過1小時。當人們跨過一個區(qū)域,就將自己的時鐘校正1小時(向西減1小時,向東加1小時),跨過幾個區(qū)域就加或減幾小時 ,所以同一時刻在不同時區(qū)表示的時間是不一樣的。

二、時間的表示

我們平時表示時間時通常是以一個格式化的字符串來表示一個時間,例如"2019-11-5 20:05"這個字符串表示的是2019年11月5日20點05分。但這里有一個隱含的前提,時區(qū)是自己當前所在的時區(qū),即東八區(qū)的人看到這個時間認為是東八區(qū)的20:05,而東九區(qū)的人會認為是東九區(qū)的20:05,實際上這兩個時間相差了一個小時。所以要正確的表示一個特定時刻,還要再加上時區(qū)信息,例如"2019-11-5 20:05 +8:00"這個字符串不管哪個時區(qū)的人看到都知道表示的是東八區(qū)的時間。

三、時間戳

時間戳表示的是一個時間間隔,從0時區(qū)來看,表示從"1970-1-1 00:00 +0:00"到現(xiàn)在(2019-11-5 12:05 +0:00)時刻的時間間隔,而從東八區(qū)來看表示從"1970-1-1 08:00 +8:00"到現(xiàn)在(2019-11-5 20:05 +8:00)的時間間隔。

間隔=現(xiàn)在-起點,因為現(xiàn)在和起點都相差了8小時,所以時間間隔是一樣的,同樣的道理,在任意時區(qū)中現(xiàn)在這一個時刻的時間戳都是一樣的。

四、Date類和時間戳

java的Date類中實際保存的是某一個時刻的時間戳,所以同一時刻在任意時區(qū)獲取到的Date對象都是一樣的。當使用SimpleDateFormat格式化日期時,默認的會以當前的系統(tǒng)時區(qū)來格式化日期,所以同一時刻不同時區(qū)的人格式化日期得到的結(jié)果才會有時差。

所以以下代碼,在東八區(qū)和東九區(qū)得到的輸出相差了一個小時,但它們的Date對象實際上表示了同一個時刻

public class TestDate {
  public static void main(String[] args) {
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date=new Date(1572960924868L);//以時間戳來給定一個特定時刻
    System.out.println(sdf.format(date));
  }
}

五、java中的時區(qū)轉(zhuǎn)換

SimpleDateFormat的對象可以設(shè)置時區(qū),這樣同一個Date對象就可以通過SimpleDateFormat來進行時區(qū)轉(zhuǎn)換

  @Test
  public void test2(){
    Date date=new Date(1572960924868L);
    SimpleDateFormat sdf8=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf8.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));//設(shè)置時區(qū)為東八區(qū)
    System.out.println("東八區(qū)的時間:"+sdf8.format(date));//輸出格式化日期

    SimpleDateFormat sdf9=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf9.setTimeZone(TimeZone.getTimeZone("GMT+9:00"));//設(shè)置時區(qū)為東八區(qū)
    System.out.println("東九區(qū)的時間:"+sdf9.format(date));//輸出格式化日期
  }

輸出的結(jié)果如下圖

同一個時刻1572960924868,先轉(zhuǎn)為Date對象,再通過SimpleDateFormat對時區(qū)進行轉(zhuǎn)換,并格式化成時間字符串輸出。

所以在實際的應(yīng)用中,遇到需要存儲時間的問題時,可以在數(shù)據(jù)庫中存儲時間對應(yīng)的時間戳,這樣在數(shù)據(jù)庫存儲時就不會有時區(qū)的問題,而在應(yīng)用中需要用到時間時,就把這個時間戳轉(zhuǎn)為Date,再通過SimpleDateFormat轉(zhuǎn)換成需要的時區(qū)的時間。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring IOC 能降低耦合的問題分析及解決方法

    Spring IOC 能降低耦合的問題分析及解決方法

    這篇文章主要介紹了Spring IOC 為什么能降低耦合,依賴注入是調(diào)用者僅通過聲明某個組件就可以獲得組件的控制權(quán),而對該組件的依賴關(guān)系管理、查找、加載由外部完成,需要的朋友可以參考下
    2022-06-06
  • 詳解Java中的流程控制

    詳解Java中的流程控制

    今天帶大家復(fù)習(xí)Java基礎(chǔ)知識,文中對Java流程控制作了非常詳細的介紹及代碼示例,對正在學(xué)習(xí)Java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java把多個對象的list的數(shù)據(jù)合并的方法示例

    Java把多個對象的list的數(shù)據(jù)合并的方法示例

    在Java中合并多個List可以使用遍歷、Stream API或Apache Commons Collections,通過遍歷各個List并將元素添加到新List實現(xiàn)合并,Java 8提供了Stream API,使用Stream.of()和flatMap()可以簡潔地合并List,文中給出了多種方法示例,需要的朋友可以參考下
    2024-09-09
  • Java中的Opencv簡介與開發(fā)環(huán)境部署方法

    Java中的Opencv簡介與開發(fā)環(huán)境部署方法

    OpenCV是一個開源的計算機視覺和圖像處理庫,提供了豐富的圖像處理算法和工具,它支持多種圖像處理和計算機視覺算法,可以用于物體識別與跟蹤、圖像分割與邊緣檢測、圖像特征提取與描述等應(yīng)用,本文介紹Java中的Opencv簡介與開發(fā)環(huán)境部署方法,感興趣的朋友一起看看吧
    2025-01-01
  • Springboot hibernate envers使用過程詳解

    Springboot hibernate envers使用過程詳解

    這篇文章主要介紹了Springboot hibernate envers使用過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot基于HttpMessageConverter實現(xiàn)全局日期格式化

    SpringBoot基于HttpMessageConverter實現(xiàn)全局日期格式化

    這篇文章主要介紹了SpringBoot基于HttpMessageConverter實現(xiàn)全局日期格式化,使用Jackson消息轉(zhuǎn)換器,非常具有實用價值,需要的朋友可以參考下
    2018-12-12
  • Java日常練習(xí)題,每天進步一點點(53)

    Java日常練習(xí)題,每天進步一點點(53)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • Springboot訪問html頁面的教程詳解

    Springboot訪問html頁面的教程詳解

    這篇文章主要介紹了Springboot訪問html頁面的教程,本文圖文并茂給大家介紹的非常詳細,需要的朋友可以參考下
    2018-03-03
  • 詳解Spring Boot Web項目之參數(shù)綁定

    詳解Spring Boot Web項目之參數(shù)綁定

    本篇文章主要介紹了詳解Spring Boot Web項目之參數(shù)綁定,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Spring Cloud Gateway組件的三種使用方式實例詳解

    Spring Cloud Gateway組件的三種使用方式實例詳解

    Spring Cloud Gateway是 Spring 官方基于 Spring5.0 、 SpringBoot2.0 和 Project Reactor 等技術(shù)開發(fā)的網(wǎng)關(guān)旨在為微服務(wù)框架提供一種簡單而有效的統(tǒng)一的API 路由管理方式,統(tǒng)一訪問接口,這篇文章主要介紹了Spring Cloud Gateway組件的三種使用方式,需要的朋友可以參考下
    2024-01-01

最新評論

大荔县| 安阳县| 荣成市| 镇巴县| 兴隆县| 克什克腾旗| 手机| 姜堰市| 延川县| 喀喇沁旗| 青州市| 遵义市| 吉木乃县| 宜州市| 枣强县| 上杭县| 淅川县| 磴口县| 三门峡市| 丰顺县| 江城| 安丘市| 浦江县| 广德县| 高淳县| 五台县| 澄城县| 淮南市| 交口县| 青海省| 米泉市| 峨眉山市| 东丽区| 改则县| 保山市| 乌鲁木齐市| 麻江县| 兖州市| 禹州市| 广宁县| 松潘县|