如果时区不正确,时间将返回错误值

时间:2013-03-11 00:34:01

标签: android time calendar

如果设备时区不正确时间将返回不正确的值,而日历将起作用。我的应用程序是使用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

1 个答案:

答案 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>