设置 Android 事物时区

Set Android Things time zone

在 Raspberry Pi 上安装 Android 后,时间不正确。我的时区是 GMT+2,使用 date +%Z 我看到 RPi 的时区是 GMT。如何设置时区?

更新(基于Michal Harakal的评论):

Developer Preview 6 TimeManager class provides access to device settings related to time (NB! TimeManager requires <uses-permission android:name="com.google.android.things.permission.SET_TIME" />). You can use .setTimeZone() 时区设置方法:

private void setupTimeZone(String timeZoneName) {
    TimeManager timeManager = TimeManager.getInstance();
    timeManager.setTimeZone(timeZoneName);
}

其中 timeZoneNametz database time zones string, e.g. for Kyiv(GMT +2,DST +3)之一:

setupTimeZone("Europe/Kiev");

原回答:

您可以通过 AlarmManager.setTimeZone() like in this answer of Synesso 从应用程序以编程方式设置它:

AlarmManager am = (AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE);
am.setTimeZone("Europe/Madrid"); 

AndroidManifest.xml 文件中具有 <uses-permission android:name="android.permission.SET_TIME_ZONE"/> 权限。

TimeZone 个名字列表。

我使用这些代码

TimeManager timeManager = TimeManager.getInstance(); 
timeManager.setTimeFormat(TimeManager.FORMAT_24);
// Set time zone to Eastern Standard Time
//timeManager.setTimeZone("America/New_York");
timeManager.setTimeZone("GMT");
calendar.setTime(date);
long timeStamp = calendar.getTimeInMillis();
timeManager.setTime(timeStamp);

有了这个许可: com.google.android.things.permission.SET_TIME