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差的秒数即可,简单明了。这样客户、用户使用起来更方便一些。

更多相关文章

  1. Android日常整理(一)---android返回键、Fragment、android分割线、
  2. Android布局 android:gravity 和 android:layout_Gravity一些细
  3. Android中webview加载的网页上的按钮点击失效
  4. 更改Android(安卓)AVD模拟器创建路径位置的方法
  5. WebView的使用之Android与JS通过WebView互调方法
  6. android wegit 组件
  7. android应用程序设置全屏
  8. Android(安卓)权限被拒绝,跳转至权限设置界面
  9. 设置TextView超过一定长度后显示省略号

随机推荐

  1. android简介
  2. Android(安卓)ANR错误排查
  3. Android(安卓)Metro风格的Launcher开发系
  4. Android(安卓)操作系统的内存回收机制
  5. android 禁止屏幕转向
  6. Android多线程下载远程图片
  7. android防被杀
  8. 如何删除已安装的Android软件
  9. MoSync:跨多平台android,j2me, Symbian ,
  10. android使用AlarmManager实现应用每天定