『壹』 java中utc時間怎麼轉換為本地時間
計算機用的是unix紀元,1970年1月1日 0時0分 UTC(協調世界時 即升級版的格林威治時間)
可以說是回英國標准答時間。
中國是UTC+8 八區,中國本地時間要在以上標准時間上面加8小時。
反映在java的timemilli毫秒時是,
long china_ts=System.currentTimeMillier()+1000*60*60*8;
但只在不支持Java SE時區的早期版本(比如Java Card,Java ME/MIDP1.0)才需要自己手工加。
現在的java系統本身有時區庫,用Calendar/Date類,會自動調整時區。不需要再手動算。按以上加法會畫蛇添足。
『貳』 JAVA時間換算問題UTC BJT
else{UTC=BJT;}改成else{UTC=BJT;}elseif(800<BJT<2359)改成elseif(800<BJT&&BJT<2359)if(0<BJT<800)改成if(0<BJT&&BJT<800)c語言中沒有a<x<b這樣的形式。要用&&或者||來進行連接
『叄』 Java日期時間API系列19--Jdk8,ZonedDateTime和時區轉換。
Java日期時間API系列6中,通過時間范圍示意圖,可以清晰看到ZonedDateTime是LocalDateTime與ZoneId的結合,用於處理時區相關的時間。下面將詳細介紹時區相關知識,以及如何使用Java處理時區。
時區是地球上的地理區域,按照天文時區劃分,全球共有24個時區。中國北京位於東8區,若英國(格林尼治天文台舊址)時間為6點,那麼北京時間為14點。為統一世界時間,1884年的國際經度會議規定了零時區(GMT+00),東區和西區各為1-12個時區。GMT代表格林尼治標准時間,UTC是協調世界時,基於原子時秒長,精確度更高,作為世界標准時間使用。
計算機中UNIX時間戳,是以GMT/UTC時間「1970-01-01T00:00:00」為起點,到具體時間的秒數,不考慮閏秒,簡化了計算機操作復雜度。例如,若電腦系統時間為2015年2月27日15點43分0秒,設默認時區為東8區,則0時區的時間為2015年2月27日7點43分0秒,UNIX時間戳為1425022980秒。
Java中的ZoneId為時區ID,如「Europe/Paris」。常用時區名稱和縮寫可通過Java獲取,使用`java.time.ZoneId.getAvailableZoneIds()`方法。
ZonedDateTime是在ISO-8601日歷系統中包含時區的日期時間,如「2007-12-03T10:15:30+01:00 Europe/Paris」。創建ZonedDateTime時,需傳入日期和時區,轉換時可使用`java.time.ZonedDateTime`類的方法。
常用時區創建和轉換,如北京時間、巴黎時間、紐約時間、東京時間等。轉換代碼實例展示了如何將LocalDate(僅包含日期)轉換為帶有時區的ZonedDateTime,輸出為「2020-02-19T00:00+08:00[Asia/Shanghai]」。常用時間創建和時區轉換的代碼實例還包括創建常用時間的ZonedDateTime,以及執行時區間的轉換計算。
最後,介紹時區時間的格式化與解析。格式化代碼使用了ISO常用格式化,如「yyyy-MM-dd'T'HH:mm:ssZ」。解析代碼展示了如何從字元串中解析出時區時間。以上內容提供了Java處理時區的全面指南。
『肆』 java中utc時間怎麼轉換為本地時間
網路本來就有的回答。。。。
若要將 UTC 轉換為本地時間,請按照下列步驟操作:
確定您的本地時間偏移量,從 UTC 時間。為此請 Microsoft 基於 Windows 的計算機上按照下列步驟操作:
單擊 開始,單擊 運行,鍵入 timedate.cpl,然後單擊 確定。
單擊 時區 選項卡,然後驗證選中了您的本地時區。 如果不選擇您的本地時區,則請在可用的時區的列表中單擊它。
在每個本地區域列表項開始時顯示本地時間偏移量。例如對於-5: 00 是本地時間偏移量為東部時間 (美國和加拿大):
(GMT-5:00) 東部時間 (美國和加拿大)
添加本地時間偏移量為 UTC 時間。
例如您的本地時間偏移量是-5: 00,然後如果 UTC 時間顯示為 11: 00,添加-5 到 11。偏移量的調整時該時間設置為 06: 00 (上午 6: 00)。
注意 該日期也採用 UTC 格式。例如您的本地時間偏移量是-8: 00,並且如果該文件的 UTC 時間顯示為 00: 00 (午夜 12: 00) 在星期一,調整後的時間是 16: 00 星期日 (下午 4: 00,星期日)。
調整為夏時制時間。
UTC 時間不以反映夏令時進行調整。 如果您的時區參與夏時制時間,添加當夏時制時間是有效的文件的偏移量調整時間的時間差別。例如對於如果在您的時區中的夏令時的標准時間提前一小時,將 1 小時的時間添加到偏移量調整時間。
如果您的本地時間使用 12 小時格式,請將 24 小時時間格式轉換為 12 小時時間格式。要在轉換請按照下列步驟操作,請執行以下操作:
如果偏移量調整的時間 12: 01 和 23: 59,(含) 之間,之間減去 12 從在調整後的時間,然後將附加 下午
如果已調整的時間介於 00: 01 和 11: 59,(含) 之間,留在調整後的時間為是,然後將附加 上午
如果已調整的時間 00: 00,則使用 午夜 12: 00。
如果已調整的時間 12: 00,使用 中午 12: 00。
此內容轉的,出處:
http://..com/question/456035592650368645.html
『伍』 在java裡面,如何得到UTC時間, 時間格式為:Tue Oct 12 00:00:00 UTC 0800 2010
Calendar gc = GregorianCalendar.getInstance();
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
//之後調用cal.get(int x)或cal.getTimeInMillis()方法所取得的時間即是UTC標准時間。
System.out.println("UTC:"+new Date(cal.getTimeInMillis()));
贈送其它時間方法,總有一款適合您
public static void main(String[] args) {
SimpleDateFormat foo = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("foo:"+foo.format(new Date()));
Calendar gc = GregorianCalendar.getInstance();
System.out.println("gc.getTime():"+gc.getTime());
System.out.println("gc.getTimeInMillis():"+new Date(gc.getTimeInMillis()));
//當前系統默認時區的時間:
Calendar calendar=new GregorianCalendar();
System.out.print("時區:"+calendar.getTimeZone().getID()+" ");
System.out.println("時間:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
//美國洛杉磯時區
TimeZone tz=TimeZone.getTimeZone("America/Los_Angeles");
//時區轉換
calendar.setTimeZone(tz);
System.out.print("時區:"+calendar.getTimeZone().getID()+" ");
System.out.println("時間:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
Date time=new Date();
//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));
//之後調用cal.get(int x)或cal.getTimeInMillis()方法所取得的時間即是UTC標准時間。
System.out.println("UTC:"+new Date(cal.getTimeInMillis()));
Calendar calendar1 = Calendar.getInstance();
TimeZone tztz = TimeZone.getTimeZone("GMT");
calendar1.setTimeZone(tztz);
System.out.println(calendar.getTime());
System.out.println(calendar.getTimeInMillis());
}
運算結果是Tue Oct 19 16:54:57 CST 2010 符合你的要求
只是以毫秒來算的