我正在使用此功能获取真实设备上的当前时间(在Galaxy S4上测试):
private String getCurrentTime(){
TimeZone mtz = TimeZone.getTimeZone(TimeZone.getDefault().toString());
Calendar calendar = Calendar.getInstance(mtz);
String current_time = calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
return current_time ;
}
但是实时(例如):
十八时48分16秒
函数的返回值:
14时17分41秒
自动日期&已检查手机上的时间和自动时区 !!
但是这个功能有效:
private String getCurrentTime(){
TimeZone mtz = TimeZone.getTimeZone("GMT+04:30");
Calendar calendar = Calendar.getInstance(mtz);
String current_time = calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
return current_time ;
}
另一个问题:
当我更改手机上的时间时,前一个功能的返回值会发生变化,如何防止这种情况发生?换句话说,我怎样才能实时(没有任何互联网连接)?
答案 0 :(得分:1)
在第一个示例中,由于toString转换,您在GMT中收到时间。要获取设备时区,只需使用:
TimeZone mtz = TimeZone.getDefault();