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

java時區(qū)轉(zhuǎn)換的理解及示例詳解

 更新時間:2020年07月17日 15:59:15   作者:Even  
這篇文章主要介紹了java時區(qū)轉(zhuǎn)換的理解及示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、時區(qū)的基本概念

GMT(Greenwich Mean Time),即格林威治標準時,是東西經(jīng)零度的地方。人們將地球人為的分為24等份,每一等份為一個時區(qū),每時區(qū)橫跨經(jīng)度15度,時間正好為1小時。往西一個時區(qū),則減去一小時;往東一個時區(qū),則加上一小時。中國在東經(jīng)120度上,(東經(jīng)120°-東經(jīng)0°)所得度數(shù)再除以15,即得8。

UTC(Coordinated Universal Time),即世界協(xié)調(diào)時間,是經(jīng)過平均太陽時(以格林威治時間GMT為準)、地軸運動修正后的新時標以及以「秒」為單位的國際原子時所綜合精算而成的時間,計算過程相當嚴謹精密,因此若以「世界標準時間」的角度來說,UTC比GMT來得更加精準。UTC的本質(zhì)強調(diào)的是比GMT更為精確的世界時間標準,不過對于現(xiàn)行表款來說,GMT與UTC的功能與精確度是沒有差別的。

CST時間卻同時可以代表如下 4 個不同的時區(qū):

  1. Central Standard Time (USA) UT-6:00
  2. Central Standard Time (Australia) UT+9:30
  3. China Standard Time UT+8:00
  4. Cuba Standard Time UT-4:00

可見,CST可以同時表示美國,澳大利亞,中國,古巴四個國家的標準時間。

DST(Daylight Saving Time),夏日節(jié)約時間,指在夏天太陽升起的比較早時,將時鐘撥快一小時,以提早日光的使用,在英國則稱為夏令時間(Summer Time)。

PDT以及PST, PDT 是 Pacific Daylight Time 的縮寫,美國夏季始于每年4月的第1個周日,止于每年10月的最后一個周日。夏令時比正常時間早一小時,與PDT時間相對應的是PST , Pacific Standard Time 。 夏時制結(jié)束后就是PST(太平洋標準時間),西八區(qū),與北京時間(東八區(qū))時差-16個小時。

二、java中的時區(qū)

可以用以下code,列出java中的時區(qū)

String ids[] = TimeZone.getAvailableIDs();
 for(String id: ids) {
  System.out.println(id);
 }

注意:你會發(fā)現(xiàn)在PDT不在該時區(qū)列表里
如果要用PDT,用PST作為時區(qū)可以得到準確的時間,即使是夏令時

TimeZone timeZone = TimeZone.getTimeZone("PST");
 Calendar calendar = new GregorianCalendar();
 calendar.set(Calendar.MILLISECOND, 0);
 calendar.set(Calendar.SECOND, 0);
 calendar.set(Calendar.MINUTE, 0);
 calendar.set(Calendar.HOUR, 0);
 calendar.set(2018, 5, 10);// 輸出 Sun Jun 10 15:00:00 CST 2018
  //calendar.set(2018, 2, 10); // 輸出 Sat Mar 10 16:00:00 CST 2018
 calendar.setTimeZone(timeZone);
 System.out.println(calendar.getTime());

如果要獲得某個時區(qū)是否使用了DST,可以用useDaylightTime   

 boolean isUsingDST = TimeZone.getTimeZone("America/Los_Angeles").useDaylightTime();
 System.out.println(isUsingDST);

如果要判斷某個時間在某個時區(qū)是否發(fā)生了DST,可以用         

 Calendar calendarServer=Calendar.getInstance();
 calendarServer.add(Calendar.DATE, 1);
 boolean isUsingDST = clientTimeZone.inDaylightTime(calendarServer.getTime());
 System.out.println(isUsingDST);

獲取當前時區(qū)和UTC的偏移量,在當前時間5月13日(發(fā)生了DLS)比較getRawOffset() 和getOffset()

 TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));//將timezone設(shè)定到發(fā)生夏令時的地區(qū)
  int rowOffSet = TimeZone.getDefault().getRawOffset();
 int offSet = TimeZone.getDefault().getOffset(System.currentTimeMillis());
  System.out.println(offSet + " " + offSet/3600000 ); // -7 hours
 System.out.println(rowOffSet + " " + rowOffSet/3600000); // -8 hours

以下是時區(qū)轉(zhuǎn)化的例子

Date date = new Date(1359641834000L);// 2013-1-31 22:17:14
 String dateStr = "2013-3-31 22:17:14";
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 dateFormat.setTimeZone(TimeZone.getTimeZone("CST"));// CST = GMT - 6(Central Standard Time (USA)而不是北京標準時間)

 try {
//  指該字串以CST來換算,所以實際時間是2013-1-31 22:17:14 CST(GMT - 6),輸出是以host的時區(qū)(GMT+8)進行format,所以加14
  Date dateTmp = dateFormat.parse(dateStr);

   boolean isUsingDST = TimeZone.getTimeZone("CST").inDaylightTime(dateTmp);
  System.out.println(isUsingDST);// 輸出true,因此減1個小時
  System.out.println(dateTmp);//輸出 Fri Feb 01 11:17:14 CST 2013
 } catch(ParseException e) {
  e.printStackTrace();
 }
 String dateStrTmp = dateFormat.format(date);//數(shù)字是絕對時間,如果以host時區(qū)(GMT+8)來format就是22:17,這個數(shù)字以CST/GMT-6時區(qū)來format,就是-14
 System.out.println(dateStrTmp);// 輸出 2013-01-31 08:17:14

到此這篇關(guān)于java時區(qū)轉(zhuǎn)換的理解及示例詳解的文章就介紹到這了,更多相關(guān)java時區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot Maven打包如何根據(jù)環(huán)境排除文件

    SpringBoot Maven打包如何根據(jù)環(huán)境排除文件

    文章介紹了在SpringBoot項目中,根據(jù)不同的環(huán)境(開發(fā)、測試、生產(chǎn))進行JSP文件打包處理的方法,通過配置`pom.xml`文件中的``標簽,可以實現(xiàn)開發(fā)環(huán)境保留`index.jsp`文件,測試環(huán)境和生產(chǎn)環(huán)境排除該文件
    2024-12-12
  • java實現(xiàn)掃雷游戲

    java實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • SpringBoot如何監(jiān)控Redis中某個Key的變化(自定義監(jiān)聽器)

    SpringBoot如何監(jiān)控Redis中某個Key的變化(自定義監(jiān)聽器)

    這篇文章主要介紹了SpringBoot如何監(jiān)控Redis中某個Key的變化(自定義監(jiān)聽器),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Springboot實現(xiàn)Java郵件任務過程解析

    Springboot實現(xiàn)Java郵件任務過程解析

    這篇文章主要介紹了Springboot實現(xiàn)Java郵件任務過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • java二叉樹的遍歷方式詳解

    java二叉樹的遍歷方式詳解

    這篇文章主要為大家詳細介紹了java實現(xiàn)二叉樹遍歷的四種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-08-08
  • Java?時間相減算法題解示例

    Java?時間相減算法題解示例

    這篇文章主要為大家介紹了Java?時間相減算法題解示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • java返回前端實體類json數(shù)據(jù)時忽略某個屬性方法

    java返回前端實體類json數(shù)據(jù)時忽略某個屬性方法

    這篇文章主要給大家介紹了關(guān)于java返回前端實體類json數(shù)據(jù)時忽略某個屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Java7之forkjoin簡介_動力節(jié)點Java學院整理

    Java7之forkjoin簡介_動力節(jié)點Java學院整理

    Java7引入了Fork Join的概念,來更好的支持并行運算。接下來通過本文給大家分享Java7之forkjoin簡介,感興趣的朋友一起看看吧
    2017-06-06
  • 在Java編程中使用正則表達式

    在Java編程中使用正則表達式

    這篇文章主要介紹了在Java編程中使用正則表達式,注意使用matches()方法檢測一下Java對正則表達式的支持情況,需要的朋友可以參考下
    2015-08-08
  • java swing實現(xiàn)電影購票系統(tǒng)

    java swing實現(xiàn)電影購票系統(tǒng)

    這篇文章主要為大家詳細介紹了java swing實現(xiàn)電影購票系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01

最新評論

九龙坡区| 宽甸| 乌兰察布市| 那坡县| 荃湾区| 莱阳市| 阜平县| 新余市| 大荔县| 庐江县| 札达县| 黎城县| 金溪县| 民勤县| 突泉县| 乐平市| 万安县| 仙桃市| 南投市| 民乐县| 泾川县| 泽库县| 陇南市| 都匀市| 新野县| 启东市| 勃利县| 阿坝| 鲁甸县| 柯坪县| 修文县| 衡阳市| 盘锦市| 横山县| 怀化市| 襄垣县| 岑溪市| 北安市| 靖安县| 丹凤县| 浮梁县|