更新(基于米哈尔·哈拉卡尔 https://stackoverflow.com/users/211886/michal-harakal的评论):
Since 开发者预览版 6 https://android-developers.googleblog.com/2017/11/android-things-developer-preview-6.html TimeManager https://developer.android.com/reference/com/google/android/things/device/TimeManager类提供对与时间相关的设备设置的访问(注意!TimeManager
需要<uses-permission android:name="com.google.android.things.permission.SET_TIME" />
)。您可以使用.setTimeZone() https://developer.android.com/reference/com/google/android/things/device/TimeManager#setTimeZone(java.lang.String)时区设置方法:
private void setupTimeZone(String timeZoneName) {
TimeManager timeManager = TimeManager.getInstance();
timeManager.setTimeZone(timeZoneName);
}
where timeZoneName
是其中之一tz 数据库时区 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones字符串,例如为了Kyiv https://www.google.com.ua/maps/@50.450467,30.5224943,8z?hl=en(格林威治标准时间 +2,夏令时 +3):
setupTimeZone("Europe/Kiev");
原答案:
您可以通过以下方式从应用程序以编程方式设置它AlarmManager.setTimeZone() https://developer.android.com/reference/android/app/AlarmManager.html#setTimeZone(java.lang.String)像this https://stackoverflow.com/a/27540304/6950238的答案Synesso https://stackoverflow.com/users/45525/synesso:
AlarmManager am = (AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE);
am.setTimeZone("Europe/Madrid");
with <uses-permission android:name="android.permission.SET_TIME_ZONE"/>
的许可AndroidManifest.xml
file.
List of TimeZone https://en.wikipedia.org/wiki/List_of_tz_database_time_zones names.