Java獲取UTC時間的方法詳解
本文實例講述了Java獲取UTC時間的方法。分享給大家供大家參考,具體如下:
取得本地時間:
java.util.Calendar cal = java.util.Calendar.getInstance();
取得指定時區(qū)的時間:
java.util.TimeZone zone = java.util.TimeZone.getTimeZone(“GMT-8:00″); java.util.Calendar cal = java.util.Calendar.getInstance(zone); java.util.Calendar cal = java.util.Calendar.getInstance(java.util.Locale.CHINA);
您可以取得GMT 0的本地時間,但是又如何取得標準(相對于Java而言)的時間呢?
1. 取得本地時間:
java.util.Calendar cal = java.util.Calendar.getInstance();
2. 取得時間偏移量:
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
3. 取得夏令時差:
int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
4.從本地時間里扣除這些差量,即可以取得UTC時間:
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
完整示例:
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimeZone; public final class GetUTCTimeUtil { private static DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm") ; /** * 得到UTC時間,類型為字符串,格式為"yyyy-MM-dd HH:mm"<br /> * 如果獲取失敗,返回null * @return */ public static String getUTCTimeStr() { StringBuffer UTCTimeBuffer = new StringBuffer(); // 1、取得本地時間: Calendar cal = Calendar.getInstance() ; // 2、取得時間偏移量: int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET); // 3、取得夏令時差: int dstOffset = cal.get(java.util.Calendar.DST_OFFSET); // 4、從本地時間里扣除這些差量,即可以取得UTC時間: cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset)); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH)+1; int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); UTCTimeBuffer.append(year).append("-").append(month).append("-").append(day) ; UTCTimeBuffer.append(" ").append(hour).append(":").append(minute) ; try{ format.parse(UTCTimeBuffer.toString()) ; return UTCTimeBuffer.toString() ; }catch(ParseException e) { e.printStackTrace() ; } return null ; } /** * 將UTC時間轉(zhuǎn)換為東八區(qū)時間 * @param UTCTime * @return */ public static String getLocalTimeFromUTC(String UTCTime){ java.util.Date UTCDate = null ; String localTimeStr = null ; try { UTCDate = format.parse(UTCTime); format.setTimeZone(TimeZone.getTimeZone("GMT-8")) ; localTimeStr = format.format(UTCDate) ; } catch (ParseException e) { e.printStackTrace(); } return localTimeStr ; } public static void main(String[] args) { String UTCTimeStr = getUTCTimeStr() ; System.out.println(UTCTimeStr); System.out.println(getLocalTimeFromUTC(UTCTimeStr)); } }
運行結(jié)果如下:
PS:這里再為大家推薦幾款時間及日期相關(guān)工具供大家參考使用:
在線日期/天數(shù)計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線日期計算器/相差天數(shù)計算器:
http://tools.jb51.net/jisuanqi/datecalc
在線日期天數(shù)差計算器:
http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
在線世界各地時間查詢:
http://tools.jb51.net/zhuanhuanqi/worldtime
希望本文所述對大家java程序設計有所幫助。
相關(guān)文章
SpringBoot整合Redis實現(xiàn)訪問量統(tǒng)計的示例代碼
本文主要介紹了SpringBoot整合Redis實現(xiàn)訪問量統(tǒng)計的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02RxJava2.x+ReTrofit2.x多線程下載文件的示例代碼
本篇文章主要介紹了RxJava2.x+ReTrofit2.x多線程下載文件的示例代碼,具有一定的參考價值,有興趣的可以了解一下2017-09-09Log4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載(替換過程)
Apache?開源項目?Log4j?的遠程代碼執(zhí)行漏洞細節(jié)被公開,由于?Log4j?的廣泛使用,該漏洞一旦被攻擊者利用會造成嚴重危害,下面小編給大家?guī)砹薒og4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載,感興趣的朋友一起看看吧2021-12-12JavaCV與FFmpeg音視頻流處理技巧總結(jié)大全
JavaCV是一個開源的Java接口,它為幾個著名的計算機視覺庫(如OpenCV、FFmpeg)提供了Java封裝,這篇文章主要給大家介紹了關(guān)于JavaCV與FFmpeg音視頻流處理技巧總結(jié)的相關(guān)資料,需要的朋友可以參考下2024-05-05