如何从物理设备获取UTC中的时区偏移量(如UTC + 07:00)?

时间:2018-11-21 11:42:34

标签: android time timezone timezone-offset

如何从Android设备获取UTC时区偏移量(如UTC+03:00)?借助以下代码,我能够以GMT格式(看起来像GMT+03:00)检索时区偏移量:

TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT)

我无法以UTC格式检索时区偏移量(我实际上想要检索的是类似UTC+03:00的东西)。如何实现呢?

UPD

java.util.TimeZone类似乎有问题,因为

val timeZoneGMT = TimeZone.getTimeZone("GMT")
Log.d("OLOLO ","Time zone GMT: " + timeZoneGMT.getDisplayName(false, TimeZone.SHORT))

输出

  

GMT时区:GMT + 00:00

但同时

val timeZone = TimeZone.getTimeZone("UTC")
Log.d("OLOLO ","Time zone UTC: " + timeZone.getDisplayName(false, TimeZone.SHORT))

仅输出以下内容:

  

时区UTC:UTC

1 个答案:

答案 0 :(得分:0)

尝试

使用java.time

    long timeNow = OffsetDateTime.now(ZoneOffset.UTC)
            .toEpochSecond();
    Log.d("Time ","Three years ago: " 
            + NumberFormat.getIntegerInstance().format(timeNow));

注意:为此,您的最低API级别必须为19或更高。

使用Calender

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");

sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

Log.d("Time ",sdf.format(calendar.getTime()));

注意:-这适用于所有API级别。

希望它能解决您的问题。