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的本地時間,但是又如何取得標(biāo)準(zhǔn)(相對于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));
}
}
運(yùn)行結(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程序設(shè)計有所幫助。
相關(guān)文章
基于JSON實現(xiàn)傳輸byte數(shù)組過程解析
這篇文章主要介紹了基于JSON實現(xiàn)傳輸byte數(shù)組過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
springboot使用ThreadPoolTaskExecutor多線程批量插入百萬級數(shù)據(jù)的實現(xiàn)方法
這篇文章主要介紹了springboot利用ThreadPoolTaskExecutor多線程批量插入百萬級數(shù)據(jù),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
Java中Object轉(zhuǎn)換為List類型的實現(xiàn)方法
這篇文章主要介紹了Java中Object轉(zhuǎn)換為List類型的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Java?使用geotools讀取tiff數(shù)據(jù)的示例代碼
這篇文章主要介紹了Java?通過geotools讀取tiff,一般對于tiff數(shù)據(jù)的讀取,都會借助于gdal,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
Java中Elasticsearch 實現(xiàn)分頁方式(三種方式)
Elasticsearch是用Java語言開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,這篇文章主要介紹了Elasticsearch實現(xiàn)分頁的3種方式,需要的朋友可以參考下2022-07-07
Spring Boot Actuator執(zhí)行器運(yùn)行原理詳解
這篇文章主要介紹了Spring Boot Actuator執(zhí)行器運(yùn)行原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
Spring Boot Admin微服務(wù)應(yīng)用監(jiān)控的實現(xiàn)
這篇文章主要介紹了Spring Boot Admin微服務(wù)應(yīng)用監(jiān)控,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Mybatis Plus select 實現(xiàn)只查詢部分字段
這篇文章主要介紹了Mybatis Plus select 實現(xiàn)只查詢部分字段的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述
這篇文章主要介紹了Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述,多線程并發(fā)是Java編程中最終要的部分之一,需要的朋友可以參考下2015-07-07
SpringBoot集成ShedLock實現(xiàn)分布式定時任務(wù)的示例代碼
ShedLock 是一個 Java 庫,通常用于分布式系統(tǒng)中,確保定時任務(wù)(Scheduled Tasks)在集群環(huán)境下只被某一個實例執(zhí)行一次,本文給大家介紹了SpringBoot集成ShedLock實現(xiàn)分布式定時任務(wù)的示例代碼,需要的朋友可以參考下2024-12-12

