如何从 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))
输出
Time zone GMT: GMT+00:00
但同时
val timeZone = TimeZone.getTimeZone("UTC")
Log.d("OLOLO ","Time zone UTC: " + timeZone.getDisplayName(false, TimeZone.SHORT))
输出是这样的:
Time zone UTC: UTC
最佳答案
试试这个
使用 java.time
long timeNow = OffsetDateTime.now(ZoneOffset.UTC)
.toEpochSecond();
Log.d("Time ","Three years ago: "
+ NumberFormat.getIntegerInstance().format(timeNow));
注意:为此,您的最低 API 级别必须为 19 或更高。
使用日历
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 级别。
希望能解决您的问题。
关于android - 如何获取 UTC 中的时区偏移量(如 UTC+07 :00) from a physical device?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53411307/