Android 修改默認時區


首先介紹應用程序修改 : 

AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            mAlarmManager.setTimeZone("America/Santiago");// Asia/Taipei//GMT+08:00
            // mAlarmManager.setTimeZone("Asia/Taipei");
            TimeZone tz = TimeZone.getDefault();
            
            // tz.setID("GMT+08:00");//

            Toast.makeText(
                    this,
                    "zone : " + tz.getID() + " itz : "
                            + tz.getTimeZone("GMT+08:00"), Toast.LENGTH_SHORT)
                    .show();

注意下面的一句 :

mAlarmManager.setTimeZone("America/Santiago");

"America/Santiago" 是XML一個ID值,這個ID值來自 : 下面xml中id后面的賦值

<timezone id="Pacific/Majuro">馬朱羅</timezone>
    <timezone id="Pacific/Midway">中途島</timezone>
    <timezone id="Pacific/Honolulu">檀香山</timezone>
    <timezone id="America/Anchorage">安克雷奇</timezone>

上面只列出部分項.

修改后,進入Setting->Date & Time->Select time zone項,既可以看到結果.

 

其次可以通過系統修改,通過系統修改是修改系統默認值:

Android 系統默認時區為GMT + 00:00,在設置中的“日期和時間”中可以看到,下面是修改默認時區的方法。

在Android源碼中找到Device/(設備或平台名稱)/(這里可能還有一層是編譯的代號之類的吧)/system.prop 

 

在其中添加,若已存在則修改為 persist.sys.timezone=Asia/Shanghai

 

persist.sys.timezone屬性的對應值在如下文件中,frameworks\base\core\res\res\xml\time_zones_by_country.xml

這個xml文件中可以找到中國所在的 GMT + 8:00時區的對應值

復制代碼
 <!-- CHINA, 8:00 -->

    <timezone code="cn">Asia/Shanghai</timezone>
    <timezone code="cn">Asia/Harbin</timezone>
    <timezone code="cn">Asia/Chongqing</timezone>
    <timezone code="cn">Asia/Urumqi</timezone>
    <timezone code="cn">Asia/Kashgar</timezone>
復制代碼

 

修改完之后需要重新編譯整個系統,編譯后的結果在/out/target/product/(以設備平台名稱編譯版本命名的文件夾)/system/build.prop中可以看到。

 

system.prop 這個文件中還可以修改其他一些默認屬性,例如默認的顯示語言和國家區域如下:

ro.product.locale.language=zh ro.product.locale.region=CN

 

 

http://www.cnblogs.com/wuwangSaber/archive/2012/09/03/2669714.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM