1. 程式人生 > >Java UTC(GMT)時間和Date時間轉換

Java UTC(GMT)時間和Date時間轉換

概念 :

格林尼治標準時間(GMT,舊譯“格林威治平均時間”或“格林威治標準時間”)是指位於倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那裡的經線。

協調世界時(UTC)  英文:Coordinated Universal Time ,別稱:世界統一時間,世界標準時間國際協調時間, 協調世界時,又稱世界統一時間,世界標準時間,國際協調時間,簡稱UTC。它從英文“Coordinated Universal Time”/法文“Temps Universel Cordonné”而來。

GMT(Greenwish Mean Time 格林威治平時),這是UTC的民間名稱。GMT=UTC

例如:北京時間=UTC+8=GMT+8。

這套時間系統被應用於許多網際網路和全球資訊網的標準中,例如,網路時間協議就是協調世界時在網際網路中使用的一種方式。

在軍事中,協調世界時區會使用“Z”來表示。又由於Z在無線電聯絡中使用“Zulu”作代稱,協調世界時也會被稱為"Zulu time"。

中國大陸、中國香港、中國澳門中國臺灣、蒙古國、新加坡、馬來西亞、菲律賓、西澳大利亞州的時間與UTC的時差均為+8,也就是UTC+8。

程式碼:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

/**
 * utc 時間格式轉換正常格式 2018-08-07T03:41:59Z
 * 
 * @param utcTime 時間
 * @return
 */
public static String formatStrUTCToDateStr(String utcTime) {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TimeZone utcZone = TimeZone.getTimeZone("UTC");
    sf.setTimeZone(utcZone);
    Date date = null;
    String dateTime = "";
    try {
        date = sf.parse(utcTime);
        dateTime = sdf.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return dateTime;
}

public static void main(String[] args) {
	String utcTime = "2018-08-07T01:00:59Z";
	String time = formatStrUTCToDateStr("2018-08-07T01:00:59Z");
	System.out.println("utcTime 轉換前:" + utcTime);
	System.out.println("utcTime 轉換後 time :" + time);
}

控制檯輸入內容:

utcTime 轉換前:2018-08-07T01:00:59Z
utcTime 轉換後 time :2018-08-07 09:00:59