在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、自动获取或手动设置日期和时间
开启自动设置开关,手机将与当前网络上的时间同步。
或关闭自动设置开关手动调整日期和时间。
2、修改时区
开启自动设置开关,手机将与当前网络上的时区同步。
关闭自动设置开关您可以手动修改时区。
3、设置 12 小时制或 24 小时制
开启24小时制开关,时间将以 24 小时格式显示。
关闭24小时制开关,时间将以 12 小时格式显示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)