当设备时间更改并且不是自动手动时,我尝试使用我的应用程序 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 的情况下获得区域的最佳时间
您正在使用有严重缺陷的日期时间类,这些类在几年前已被 JSR 310 中定义的现代 java.time 类取代。
你的问题相当复杂。您似乎在问如何获取任意时区而不是当前默认时区的时间。
指定您所需的时区。
ZoneId z = ZoneId.of( "Europe/Paris" ) ;
捕捉该区域当前的时间。
LocalTime lt = LocalTime.now( z ) ;