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

Java對世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法

 更新時(shí)間:2020年07月17日 15:57:53   作者:楊博東的博客  
這篇文章主要介紹了Java對世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近出現(xiàn)一個(gè)問題是這樣的:我們的系統(tǒng)在國外打印的日志時(shí)間由于時(shí)差關(guān)系和國內(nèi)不一致,看起來不方便,希望國外的日志和國內(nèi)保持一致,即:需要對不同時(shí)區(qū)的時(shí)間做轉(zhuǎn)換調(diào)整,統(tǒng)一為國內(nèi)時(shí)間。

一、關(guān)于時(shí)區(qū)的一些概念

1.1 什么是時(shí)區(qū)?

timezone,即由于世界各國家與地區(qū)經(jīng)度不同,地方時(shí)也有所不同,按照經(jīng)度將全球劃分為24個(gè)時(shí)區(qū)。

時(shí)區(qū)有相應(yīng)的英文字母縮寫,例如GMT,UTC,CST等,常見的時(shí)區(qū),具體參考:java時(shí)區(qū)理解。

1.2 什么是夏令時(shí)?

通俗易懂的解釋就是:夏令時(shí)開始的時(shí)候,大家在夜里2點(diǎn)把表往前調(diào)一個(gè)小時(shí),即本來兩點(diǎn),被你手動(dòng)調(diào)成了三點(diǎn),如果你七點(diǎn)起床,那你那天晚上就會(huì)少睡一個(gè)小時(shí),為什么這么做是因?yàn)橄奶斓臅r(shí)候7點(diǎn)其實(shí)天已經(jīng)亮了,這樣你到了第二天晚上8點(diǎn)(其實(shí)是之前的7點(diǎn))就應(yīng)該睡覺了,這樣就可以節(jié)省電了,所以夏令時(shí)叫(Daylight Saving Time:DST),這篇文章講了為什么要有夏令時(shí)?什么時(shí)候去修改表的時(shí)間?為什么是晚上2點(diǎn)修改?反對夏令時(shí)?還有人寫paper說夏令時(shí)沒什么用。

二、如何在不同時(shí)區(qū)之間轉(zhuǎn)換時(shí)間

上部分分析了不同時(shí)區(qū),還有夏令時(shí)的區(qū)別,即我們在轉(zhuǎn)換時(shí)區(qū)的時(shí)候要考慮這兩個(gè)問題,基本思路是:

  1. 獲取到源時(shí)區(qū)相對于GMT的差距(考慮夏令時(shí))。
  2. 獲取到目的時(shí)區(qū)相對于GMT的差距(考慮夏令時(shí))。
  3. 用當(dāng)前的時(shí)間 - 源差距 + 目的差距

代碼如下所示:

public class TimeZoneTransform {

 private static String dateTransformBetweenTimeZone(Date sourceDate, DateFormat formatter,
  TimeZone sourceTimeZone, TimeZone targetTimeZone) {
 Long targetTime = sourceDate.getTime() - sourceTimeZone.getRawOffset() + targetTimeZone.getRawOffset();
 return getTime(new Date(targetTime), formatter);
 }

 private static String getTime(Date date, DateFormat formatter) {
 return formatter.format(date);
 }

 private static String getTimeZone() {
 Calendar cal = Calendar.getInstance();
 // getOffset will access to offset and contains DaylightTime
 int timeZone = cal.getTimeZone().getOffset(System.currentTimeMillis()) / (3600000);
 if (timeZone >= 0) {
 return String.valueOf("+" + timeZone);
 }
 return String.valueOf(timeZone);
 }

 public static String getGMTTime(Date date, SimpleDateFormat formatter) {
 TimeZone srcTimeZone = TimeZone.getTimeZone("GMT" + getTimeZone());
 TimeZone destTimeZone = TimeZone.getTimeZone("GMT+8");

 return dateTransformBetweenTimeZone(date, formatter, srcTimeZone, destTimeZone);
 }

 public static void main(String[] args) {
 System.out.println(getGMTTime(new Date(System.currentTimeMillis()), new SimpleDateFormat()));
 }
}

三、Java中關(guān)于時(shí)間處理的類

關(guān)于Date,Calendar,LocalDate/LocalTime的介紹文章。

參考資料:

Java時(shí)區(qū)處理之Date,Calendar,TimeZone,SimpleDateFormat

到此這篇關(guān)于Java對世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法的文章就介紹到這了,更多相關(guān)Java不同時(shí)區(qū)timezone時(shí)間轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java別名Alias是如何工作的

    Java別名Alias是如何工作的

    這篇文章主要介紹了Java別名Alias是如何工作的,別名的問題是,當(dāng)用戶寫入特定對象時(shí),其他幾個(gè)引用的所有者不希望該對象發(fā)生更改,下文相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • SSM框架流程及原理分析

    SSM框架流程及原理分析

    本文給大家分享小編一些心得體會(huì),主要是學(xué)習(xí)SSM框架之后的收獲吧,重點(diǎn)給大家介紹SSM框架流程以及原理分析,通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06
  • Java中的instanceof關(guān)鍵字在Android中的用法實(shí)例詳解

    Java中的instanceof關(guān)鍵字在Android中的用法實(shí)例詳解

    instanceof是Java的一個(gè)二元操作符,和==,>,<是同一類東西。接下來通過本文給大家介紹Java中的instanceof關(guān)鍵字在Android中的用法,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07
  • 使用Nacos實(shí)現(xiàn)動(dòng)態(tài)路由的步驟和代碼示例

    使用Nacos實(shí)現(xiàn)動(dòng)態(tài)路由的步驟和代碼示例

    這篇文章主要介紹了使用 Nacos 實(shí)現(xiàn) Spring Cloud Gateway 的動(dòng)態(tài)路由,本文給大家介紹了具體的實(shí)現(xiàn)步驟和代碼案例,感興趣的小伙伴跟著小編一起來看看吧
    2024-09-09
  • Springboot如何同時(shí)裝配兩個(gè)相同類型數(shù)據(jù)庫

    Springboot如何同時(shí)裝配兩個(gè)相同類型數(shù)據(jù)庫

    這篇文章主要介紹了Springboot如何同時(shí)裝配兩個(gè)相同類型數(shù)據(jù)庫,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java操作excel導(dǎo)入導(dǎo)出的3種方式

    java操作excel導(dǎo)入導(dǎo)出的3種方式

    項(xiàng)目需要,要實(shí)現(xiàn)一個(gè)導(dǎo)入導(dǎo)出excel的功能,于是任務(wù)驅(qū)動(dòng)著我學(xué)習(xí)到了POI、easypoi和easyexcel這3個(gè)java操作Excel的工具,下面這篇文章主要給大家介紹了關(guān)于java操作excel導(dǎo)入導(dǎo)出的3種方式,需要的朋友可以參考下
    2023-05-05
  • Java序列化和反序列化_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java序列化和反序列化_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    把對象轉(zhuǎn)換為字節(jié)序列的過程稱為對象的序列化,把字節(jié)序列恢復(fù)為對象的過程稱為對象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧
    2017-05-05
  • Java內(nèi)存模型之重排序的相關(guān)知識(shí)總結(jié)

    Java內(nèi)存模型之重排序的相關(guān)知識(shí)總結(jié)

    重排序是指編譯器和處理器為了優(yōu)化性能而對指令序列進(jìn)行重新排序的一種手段,文中詳細(xì)介紹了Java重排序的相關(guān)知識(shí),需要的朋友可以參考下
    2021-06-06
  • 剖析Java中HashMap數(shù)據(jù)結(jié)構(gòu)的源碼及其性能優(yōu)化

    剖析Java中HashMap數(shù)據(jù)結(jié)構(gòu)的源碼及其性能優(yōu)化

    這篇文章主要介紹了Java中HashMap數(shù)據(jù)結(jié)構(gòu)的源碼及其性能優(yōu)化,文中以Java 8后HashMap的性能提升來討論了HashMap的一些優(yōu)化點(diǎn),需要的朋友可以參考下
    2016-05-05
  • Spring Security學(xué)習(xí)筆記(一)

    Spring Security學(xué)習(xí)筆記(一)

    這篇文章主要介紹了Spring Security的相關(guān)資料,幫助大家開始學(xué)習(xí)Spring Security框架,感興趣的朋友可以了解下
    2020-09-09

最新評論

嘉荫县| 灵石县| 平潭县| 乌鲁木齐市| 赤峰市| 交城县| 藁城市| 定南县| 隆昌县| 安远县| 虹口区| 南昌县| 卓尼县| 贵阳市| 巧家县| 睢宁县| 句容市| 云林县| 抚顺县| 章丘市| 虞城县| 灵川县| 英德市| 新泰市| 庆阳市| 青川县| 海盐县| 新竹县| 吉安县| 彭山县| 图木舒克市| 桓仁| 九江市| 小金县| 兰西县| 名山县| 鄂托克前旗| 巴楚县| 南平市| 万州区| 裕民县|