Java UTC(GMT)時間和Date時間轉換
阿新 • • 發佈:2019-02-07
概念 :
格林尼治標準時間(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