UTC時間:世界統一時間,世界標準時間又稱格林尼治平時或格林尼治時間。
可以采用多種方法獲取,這裡隻簡單介紹兩種:直接獲取零時區時間、根據本地時間計算得出。
方法一、直接獲取零時區時間:
[java]
DateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone pst = TimeZone.getTimeZone("Etc/GMT+0");
Date curDate = new Date();
dateFormatter.setTimeZone(pst);
String str=dateFormatter.format(curDate);//這就是我們想要獲取的值
DateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone pst = TimeZone.getTimeZone("Etc/GMT+0");
Date curDate = new Date();
dateFormatter.setTimeZone(pst);
String str=dateFormatter.format(curDate);//這就是我們想要獲取的值方法二、根據本地時間計算得出:
[java]
Calendar cal = Calendar.getInstance(Locale.getDefault());
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
String str=DateFormat.format("yyyy'-'MM'-'dd' 'kk':'mm':'ss' '", cal);//這就是我們想要獲取的值
Calendar cal = Calendar.getInstance(Locale.getDefault());
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
String str=DateFormat.format("yyyy'-'MM'-'dd' 'kk':'mm':'ss' '", cal);//這就是我們想要獲取的值時區獲取:
String Zone=TimeZone.getDefault().toString();//這種方法獲取的並不能得到我們想要的東西
TimeZone.getDefault().getID()//獲取的僅僅是個時區裡的城市名
我們想得到能夠直接標識東八區(+8)或者西七區(-7)之類的東西,這隻能是我們通過時間的便宜量來計算獲得,方法如下:
[java]
Calendar cal = Calendar.getInstance(Locale.getDefault());
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
int zone=zoneOffset/60/60/1000;//時區,東時區數字為正,西時區為負
Calendar cal = Calendar.getInstance(Locale.getDefault());
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
int zone=zoneOffset/60/60/1000;//時區,東時區數字為正,西時區為負
PS:UTC時間+時區差=本地時間