Android 总是获取设备的小时而不是区域的小时

问题描述 投票:0回答:1

当设备时间更改并且不是自动手动时,我尝试使用我的应用程序 android 获取区域时间,我总是获取设备时间

这是我尝试过的代码:

TimeZone timeZone = TimeZone.getDefault(); // 时区是好的:欧洲/巴黎 日历 c = Calendar.getInstance(timeZone2);

字符串时间 = String.format("%02d" , c.get(Calendar.HOUR_OF_DAY))+":"+ String.format("%02d" , c.get(Calendar.MINUTE))+":"+ String.format("%02d" , c.get(Calendar.SECOND))+":"+ String.format("%03d" , c.get(Calendar.MILLISECOND));

//时间等于设备的小时 //我也尝试过类似的事情: String a = new SimpleDateFormat("hh:mm:ss", Locale.getDefault()).format(c.getTime()); // 遇到同样的问题

如何在不使用外部 API 的情况下获得区域的最佳时间

java android mobile timezone
1个回答
0
投票

您正在使用有严重缺陷的日期时间类,这些类在几年前已被 JSR 310 中定义的现代 java.time 类取代。

你的问题相当复杂。您似乎在问如何获取任意时区而不是当前默认时区的时间。

指定您所需的时区。

ZoneId z = ZoneId.of( "Europe/Paris" ) ;

捕捉该区域当前的时间。

LocalTime lt = LocalTime.now( z ) ;
© www.soinside.com 2019 - 2024. All rights reserved.