【发布时间】:2016-08-21 11:33:33
【问题描述】:
我需要在我的应用中获取当地时间。为此,我正在使用 Calendar 类。
代码:
Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.HOUR_OF_DAY) 根据 GMT 显示小时数。
我检查了TimeZone.getDefault().getDisplayName() 将 GMT(不正确)显示为默认时区,但 java.util.TimeZone.getDefault().getDisplayName() 显示了正确的时区。
calendar.getTime().toString() 也显示正确的时间。
我不明白为什么android.icu.util.TimeZone 和java.util.TimeZone 之间存在这种差异
编辑:
我最近发现有两个日历 API - java.util.Calendar(在 API 级别 1 中添加)和 android.icu.util.Calendar(在 API 级别 24 中添加)。
我一直在使用 android.icu.util.Calendar,但在 Android M 上对其进行了测试。所以现在我将使用 API java.util.Calendar
【问题讨论】:
-
@NabinKhadka 我得到了 GMT 时区的时间。但我的要求是获得当地时区的时间。
-
您可以使用 TimeZone.getDefault() 它为您提供默认时区,日历实例默认选择默认时区
标签: java android android-calendar android-date