我有一個日期,例如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,因爲我住在荷蘭)?而如何忽略這一點?
'Z'表示GMT + 0,所以是錯誤的時區。 – Voo 2012-07-28 20:45:08
我在伊朗有過類似的問題。當我禁用我的操作系統夏令時(通過使用不支持夏令時的時區),一切都變得正確! – 2012-07-28 20:56:56
@AmirPashazadeh更改主機操作系統上的默認時區並不是解決此問題的最佳方式。取而代之的是(a)使用java.time類,並且(b)總是在日期 - 時間類的各種方法中指定可選的時區參數。 – 2016-09-26 21:33:38