Android TextClock时间格式

Android TextClock时间格式,第1张

注::EEEE :是星期的

主要有三个属性

1format12Hour :当设备是12小时制时的显示格式

2format24Hour :当设备是24小时制时的显示格式

3timeZone :指定时区,与当前设备的时区比较之后,显示指定时区的时间

这里有三个TextClock

当前时区就是上海的时区,所以1跟2是一样的,3是东京时间,比北京时间快一个小时,

效果图如下:

SimpleDateFormat localFromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

localFromatsetTimeZone(TimeZonegetTimeZone("GMT+8:00"));

Date oldDate = localFromatparse(date);

时区转换一下

>

[DESCRIPTION]

如何修改为出厂时区为指定的时区和默认的日期?

[Solution]

时间信息预设信息都是0, 在rtc 初试化 时候设置的

由于RTC 基本上不会断电,所以它的初试化只做一次,即使重新download bin 档

用FlashTool 执行Format, 再执行download (不要用format -->download button), 或

者RTC断电一段时间,就可以观察到日期恢复到出厂值。

修改RTC默认日期:

修改文件

\alps\mediatek\custom\[project]\preloader\ inc\cust_rtch

\alps\mediatek\custom\[project]\kernel\rtc\rtc\rtc-mt65XXh

#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\NetworkTimeUpdateServicejava

[Function]

systemReady()

[Code]

if(isFirstBoot){

Time today = new Time(TimegetCurrentTimezone());

todaysetToNow(); // 将时间恢复到RTC时间

todayset(1, 0, mDefaultYear ); //设立出厂默认日期,mDefaultYear是默认年份

如果想恢复出厂设置后,系统时间不变,可使用todaysetToNow();

如果想恢复出厂设置后,系统时间也恢复成出厂时间,可使用todayset(1, 0, mDefaultYear );

这个todayset方法有6个参数的重载,可以精确到秒,具体使用方法请自行查询API,所以在这里设

置系统默认时间就可以了。

如果要设置出厂默认年份需要修改

1) mediatek\frameworks\base\res\res\values\configxml将

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(todayyear <= 2010){ //删除此行判断条件

todayset(todaymonthDay, todaymonth, 2013);

Logd(TAG, "Set the year to 2013");

SystemPropertiesset(BOOT_SYS_PROPERTY, "false");

SystemClocksetCurrentTimeMillis(todaytoMillis(false));}

修改后的表现可通过Setting菜单->时间日期设置):

修改默认时区:

在系统属性中增加下面字段(假设改为Moscow)

路径:\alps\mediatek\config\[project]\systemprop

persistsystimezone = Europe/Moscow

注意:默认时区的修改会影响默认时间的值,会根据与格林尼治标准时间差来更新时间,这是正常

现象。如当前设置为中国标准时间GMT+8:00,则手机的出厂时间会变为8:00。

使用 DateTime 的 timeZoneName 直接获取时区

得到的结果是当前的时区的简写,结果太宽泛不是我们想要的结果

其使用简洁,只需要使用下面的方法就可以获取到当前时区

打印的结果:

flutter_native_timezone 有个缺点是,这个时区的结果只有英文结果,如果是要中文结果的小伙伴,需要自己手动转换为中文了。

1找到该国家在zoneinfo中的时区信息。

 下载到最新 ,解压 tzdata201xtargz 后,在每个地区的 txt 文件中有城市的时区信息,搜索是否有您要添加的城市,则该时区可以添加;如果没有搜索到相关的国家或城市,则需要考虑使用别的城市的时区。

比如在africatxt中搜索 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/timezonesxml (xx-xx表示不同的语言和区域),添加下面的内容:

<!-- timezonesxml 用于在setting中增加一个时区设置项 -->

<timezone id=" Africa/Lagos ">Lagos</timezone>

3修改 framework/base/core/res/res/xml/time_zones_by_countryxml ,添加下面的内容

<!--time_zones_by_countryxml 这个用于自动匹配时区时使用,通过country code找一个时区 -->

<!-- Nigeria, 1:00 -->

<timezone code="ng"> Africa/Lagos </timezone>

<!-- 这里的code="ri"表示国家代码,比如中国对应cn,美国对应us,不清楚可以维基百科查询ISO_3166-1-->

这是添加一个时区的步骤,如果要添加多个时区,请重复或批量执行以上步骤。

以上就是关于Android TextClock时间格式全部的内容,包括:Android TextClock时间格式、请问android studio如何通过代码获得不同时区的时间,比如界面按一下美国的按钮,显示的就是美国的时间、Android的settings命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9335086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存