Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 問題小結(18)-UTC時間及時區獲取

問題小結(18)-UTC時間及時區獲取

編輯:關於Android編程

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時間+時區差=本地時間


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved