如果设备时区不正确时间将返回不正确的值,而日历将起作用。我的应用程序是使用Time构建的,我想保留它,但我需要解决时区问题。
Calendar c = Calendar.getInstance();
String out= c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE);
Toast.makeText(this, ""+out, Toast.LENGTH_SHORT).show();
//returns correct time
Time currentTime = new Time();
currentTime.setToNow();
Toast.makeText(this, currentTime.format("%H:%M"), Toast.LENGTH_SHORT).show();
//returns incorrect time
答案 0 :(得分:0)
我不知道这是否对您有所帮助,但我有一个非常本地化的应用程序,所以我只是从res / strings.xml变量强制执行时区。
这样的事情:
Calendar currentTime = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa");
dateFormat.setTimeZone(TimeZone.getTimeZone(context.getString(R.string.app_timezone)));
Toast.makeText(this, dateFormat.format(input.getTime()), Toast.LENGTH_SHORT).show();
然后在res / strings.xml
中<string name="app_timezone">GMT+8:00</string>