adbshell 进入shell终端界面

1、先设置系统的时区配置

cat/data/property/persist.sys.timezone//查看当前时区配置文件
setproppersist.sys.timezoneGMT//
修改属性
2、开始设置修改当前系统时间

date-s"yyyymmdd.[[[hh]mm]ss]" System/bin/date -s"yyyymmdd.[[[hh]mm]ss]"

3、查看是否生效

date

二、用代码实现修改android系统时间的方法

public void testDate(){
try {
Process process = Runtime.getRuntime().exec("su");
String datetime="20131023.112800"; //
测试的设置的时间【时间格式 yyyyMMdd.HHmmss
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("setprop persist.sys.timezone GMT\n");
os.writeBytes("/system/bin/date -s "+datetime+"\n");
os.writeBytes("clock -w\n");
os.writeBytes("exit\n");
os.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

android默认系统日期、时间、时区更改

android平台,经常会遇到产品需要更改系统默认时区日期时间的问题。android更改时区相对比较容易实现,网上也有很多资料,直接设置一个属性即可,例如设置上海东八区,persist.sys.timezone=Asia/Shanghai。但是如何实现更改默认系统时间呢?

android中,Linux内核中、rtc时钟,默认的起始日期都是197011日,那么如何把默认日期指到2012-01-01呢?笔者在实践中发现,在RTC驱动中可以很容易实现。在RTC驱动加载的时候,一般都有个probe函数需要先执行,因此在probe函数里下手最直接有效。RTC1970-01-01开始,那当然很容易把默认值设置到2012-01-01,所需要设置的seconds也就是从1970-01-01所差的秒数,以秒为单位。因此,一旦读出来的RTC值小于我们预想的值比如2012-01-011325402913)小,我们就把它设置到这个时间点。

[cpp]view plaincopy

1. seconds=rtc_read_time();

2.printk("initPMU/RTCtimeto%ld\n",seconds);

3.

4.if(seconds<=1325402913){

5. seconds=1325402913;/*2012-01-01*/

6.ret=rtc_set_time(seconds);

7. RTC_DBG("InitSettime:%ld,ret=0x%x\n",seconds,ret);

8.}

更多相关文章

  1. 在服务中设置服务重复时间
  2. ffmpeg从视频中提取帧时间戳
  3. js实现把整数秒转化为"hh:mm:ss"的时间格式.
  4. Java获得文件的创建时间(精确到秒)
  5. Java中累计时间的计算(以小时为最终结果)
  6. 如果服务器位于不同的位置,如何保存客户端机器时间
  7. java时间转换,long , string和date和时间戳的互转
  8. Java时区转换与时间格式

随机推荐

  1. Android中的自定义主题和样式
  2. 在Android中如何让gif动起来
  3. 设置 TextView 文字居中
  4. Android(安卓)NDK开发:HelloNDK
  5. android 和 lucene
  6. [android]布局(容器)简介和使用方法
  7. Android(安卓)列表按照时间排序
  8. android按屏幕大小动态确定控件位置及大
  9. android中如何处理cookie
  10. android 静音与振动