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-->

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

 

转载于:https://www.cnblogs.com/MMLoveMeMM/articles/4363854.html

要在 Android Studio 将日程添加系统日历,可以按照以下步骤操作: 1. 添加日历权限: 在应用程序的 `AndroidManifest.xml` 文件添加 `WRITE_CALENDAR` 权限。例如: ```xml <uses-permission android:name="android.permission.WRITE_CALENDAR" /> ``` 2. 创建日历事件: 在需要添加日历事件的地方,使用以下代码创建日历事件: ```java ContentResolver cr = getContentResolver(); ContentValues values = new ContentValues(); values.put(CalendarContract.Events.DTSTART, startMillis); values.put(CalendarContract.Events.DTEND, endMillis); values.put(CalendarContract.Events.TITLE, "My Event"); values.put(CalendarContract.Events.DESCRIPTION, "Description of my event"); values.put(CalendarContract.Events.CALENDAR_ID, 1); values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID()); Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values); long eventId = Long.parseLong(uri.getLastPathSegment()); ``` 其 `startMillis` 和 `endMillis` 分别是事件的开始时间和结束时间,可以使用 `Calendar` 类的 `getTimeInMillis()` 方法将日期转换为毫秒数。`CALENDAR_ID` 是日历账户的 ID,可以使用 `CalendarContract.Calendars` 表查询获得。`EVENT_TIMEZONE` 是事件的时区,可以使用 `TimeZone.getDefault().getID()` 获取本地时区。 3. 添加提醒: 如果需要为日历事件添加提醒,可以使用以下代码: ```java int minutes = 60; ContentValues reminderValues = new ContentValues(); reminderValues.put(CalendarContract.Reminders.MINUTES, minutes); reminderValues.put(CalendarContract.Reminders.EVENT_ID, eventId); reminderValues.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT); cr.insert(CalendarContract.Reminders.CONTENT_URI, reminderValues); ``` 其 `minutes` 是提醒的时间,单位为分钟。`METHOD_ALERT` 表示使用默认的提醒方式,可以根据需要使用其他方式。 以上就是在 Android Studio 将日程添加系统日历的基本步骤。需要注意的是,要测试此功能,需要在真机上测试,因为模拟器默认没有日历应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值