0

例如,我有一个日期2000-01-01T10:00:00Z。这代表商店的营业时间,因此这意味着商店在 10 点钟营业。其他信息没用,是随机日期。我只需要将其表示为字符串:10:00。对于这个转换,我使用了一个简单的方法:

public String dateToString(Date date){
    SimpleDateFormat ft =  new SimpleDateFormat ("HH:mm");
    String time= ft.format(date);
return time;
}

我认为这应该可行,首都 HH 代表 24 小时的时间。但是当我运行这段代码时,返回值为 11:00 !为什么会这样,如何预防?格式功能是否会查看我的时区,并且日期中的设置是否错误(我认为我的手机设置是 mgt+1,因为我住在荷兰)?以及如何忽略这一点?

4

2 回答 2

1

好的,找到了!Android 将日期转换为设备的时区。我不得不否决:

这有效:

public String dateToString(Date date){
    SimpleDateFormat ft =  new SimpleDateFormat ("HH:mm");
    ft.setTimeZone(TimeZone.getTimeZone("UTC"));
    String time= ft.format(date);
return time;
}
于 2012-07-29T07:28:32.943 回答
0
于 2016-09-26T21:48:10.067 回答