1. android7.0如何增加一个时区,比如波兰
不可的,波兰所在时区 标准时区:+1 时区 UTC/GMT +1 个小时
2. Android 怎么把GMT+8.0转化为UTC时间
当用户把信息上传到服务器上时,对于时间,常常用UTC时间。怎么将GMT+8.0时间转化为UTC时间呢?请参考下面的函数:
[java] public CharSequence GetUTCTime() {
Calendar cal = Calendar.getInstance(Locale.CHINA);
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));
return DateFormat.format("yyyy'-'MM'-'dd'T'kk':'mm':'ss'Z'", cal);
}
public CharSequence GetUTCTime() {
Calendar cal = Calendar.getInstance(Locale.CHINA);
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));
return DateFormat.format("yyyy'-'MM'-'dd'T'kk':'mm':'ss'Z'", cal);
}
主要用到的类:java.util.Calendar和android.text.format.DateFormat
摘自 心灵净土
3. 请问android studio如何通过代码获得不同时区的时间,比如界面按一下美国的按钮,显示的就是美国的时间
SimpleDateFormat localFromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
localFromat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
Date oldDate = localFromat.parse(date);
时区转换一下
4. 怎么修改android系统默认时区
android平台,经常会遇到产品需要更改系统默认时区日期时间的问题。android更改时区相对比较容易实现,网上也有很多资料,直接设置一个属性即可,例如设置上海东八区,persist.sys.timezone=Asia/Shanghai。但是如何实现更改默认系统时间呢?
在android中,Linux内核中、rtc时钟,默认的起始日期都是1970年1月1日,那么如何把默认日期指到2012-01-01呢?笔者在实践中发现,在RTC驱动中可以很容易实现。在RTC驱动加载的时候,一般都有个probe函数需要先执行,因此在probe函数里下手最直接有效。RTC从1970-01-01开始,那当然很容易把默认值设置到2012-01-01,所需要设置的seconds也就是从1970-01-01所差的秒数,以秒为单位。因此,一旦读出来的RTC值小于我们预想的值比如2012-01-01(1325402913)小,我们就把它设置到这个时间点。
seconds = rtc_read_time();
printk("init PMU/RTC time to %ld \n", seconds);
if(seconds <= 1325402913) {
seconds = 1325402913;/*2012-01-01*/
ret = rtc_set_time(seconds);
RTC_DBG("Init Set time: %ld, ret =0x%x\n", seconds, ret);
}
笔者通过结果显示,在android平台上是可行的。要设置到哪天几点几分,只要算好具体1970-01-01 00:00差的秒数即可,简单明了。这样客户、用户使用起来更方便一些。
5. 如何Android 添加一个新的时区
解决方案:以加入Nigeria时区为例,应该如下修改:
1.找到该国家在zoneinfo中的时区信息。
区信息的文件可以从ftp://munnari.oz.au/pub/下载到最新的,解压tzdata201x*.tar.gz后,在每个地区的txt文件中有城市的时区信息,搜索是否有您要添加的城市,则该时区可以添加;如果没有搜索到相关的国家或城市,则需要考虑使用别的城市的时区。
比如在africa.txt中搜索Nigeria,可以找到下面的内容:
# Nigeria
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Lagos 0:13:36 - LMT 1919 Sep
1:00 - WAT
这样可以看到,尼日尔爾利亚只有一个城市可以作为时区ID,这个ID就是Africa/Lagos。
2.修改packages/apps/Settings/res/xml-xx-xx/timezones.xml (xx-xx表示不同的语言和区域),添加下面的内容:
<!-- timezones.xml 用于在setting中增加一个时区设置项 -->
<timezone id="Africa/Lagos">Lagos</timezone>
3.修改framework/base/core/res/res/xml/time_zones_by_country.xml,添加下面的内容
<!--time_zones_by_country.xml 这个用于自动匹配时区时使用,通过country code找一个时区 -->
<!-- Nigeria, 1:00 -->
<timezone code="ng">Africa/Lagos</timezone>
<!-- 这里的code="ri"表示国家代码,比如中国对应cn,美国对应us,不清楚可以维基网络查询ISO_3166-1-->
这是添加一个时区的步骤,如果要添加多个时区,请重复或批量执行以上步骤。
6. android 中怎么把 GMT+10 的时间转换为 GMT+8 时区的时间
进入设置- 日期和时间-选择时区,就可以了
7. android获取手机真实时间与时区,IP地址
获得经纬度后就相应的得到时间了!好像是我们项目就是用的这个时间。。。时间是unix的计算方法,就是1970年1月1日0点0分0秒到现在的秒数,用new Date(location.getTime())就得到当前时间了,不过你得根据你的特殊情况进行判断计算了,可以再找找详细的资料,祝你好运~
8. android 如何修改对应时区的夏令时,冬令时
夏令时比标准时快一个小时。例如,在夏令时的实施期间,标准时间的上午10点就成了夏令时的上午11点。 夏令时,又称“日光节约时制”或“夏时制”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏令时的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。 冬令时是在冬天使用的标准时间。在使用日光节约时制的地区,夏天时钟拨快一小时,冬天再拨回来。这时采用的是标准时间,也就是冬令时。
9. android 怎么修改出厂默认日期和默认时区
[DESCRIPTION]
如何修改为出厂时区为指定的时区和默认的日期?
[Solution]
时间信息预设信息都是0, 在rtc 初试化 时候设置的.
由于RTC 基本上不会断电,所以它的初试化只做一次,即使重新download bin 档.
用FlashTool 执行Format, 再执行download (不要用format -->download button), 或
者RTC断电一段时间,就可以观察到日期恢复到出厂值。
修改RTC默认日期:
修改文件
\alps\mediatek\custom\[project]\preloader\ inc\cust_rtc.h
\alps\mediatek\custom\[project]\kernel\rtc\rtc\rtc-mt65XX.h
#define RTC_DEFAULT_YEA 2012
#define RTC_DEFAULT_MTH 2
#define RTC_DEFAULT_DOM 1
修改默认日期:
在JB之前,进行以上修改即可,如果是JB以后,还需要进行以下修改:
(如果下面的修改还是无效,请参考FAQ08916,FAQ08719,FAQ07606)
[File]
framework\services\java\com\android\server\NetworkTimeUpdateService.java
[Function]
systemReady()
[Code]
if(isFirstBoot){
Time today = new Time(Time.getCurrentTimezone());
today.setToNow(); // 将时间恢复到RTC时间
today.set(1, 0, mDefaultYear ); //设立出厂默认日期,mDefaultYear是默认年份
如果想恢复出厂设置后,系统时间不变,可使用today.setToNow();
如果想恢复出厂设置后,系统时间也恢复成出厂时间,可使用today.set(1, 0, mDefaultYear );
这个today.set方法有6个参数的重载,可以精确到秒,具体使用方法请自行查询API,所以在这里设
置系统默认时间就可以了。
如果要设置出厂默认年份需要修改
1) mediatek\frameworks\base\res\res\values\config.xml将
default_restore_year 修改成 2013
<!-- default year for first power on-->
<integer name="default_restore_year">2013</integer>
2)
frameworks\base\services\java\com\android\server\NetworkTimeUpdateService.
java
if(today.year <= 2010){ //删除此行判断条件
today.set(today.monthDay, today.month, 2013);
Log.d(TAG, "Set the year to 2013");
SystemProperties.set(BOOT_SYS_PROPERTY, "false");
SystemClock.setCurrentTimeMillis(today.toMillis(false));}
修改后的表现可通过Setting菜单->时间日期设置):
修改默认时区:
在系统属性中增加下面字段(假设改为Moscow)
路径:\alps\mediatek\config\[project]\system.prop
persist.sys.timezone = Europe/Moscow
注意:默认时区的修改会影响默认时间的值,会根据与格林尼治标准时间差来更新时间,这是正常
现象。如当前设置为中国标准时间GMT+8:00,则手机的出厂时间会变为8:00。