0

たとえば、日付があります2000-01-01T10:00:00Z。これはお店のopenhoursの略で、お店が10時に開店することを意味します。他の情報は役に立たない、ランダムな日付です。これを文字列として表すだけでよいので、10:00. この変換のために、私は簡単な方法を使用しました:

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

私はこれがうまくいくはずだと思った. 時間の24時間表現のための首都HH. しかし、このコードを実行すると、戻り値は 11:00 です! これはなぜですか、またそれを防ぐ方法は? フォーマット機能は私のタイムゾーンを調べますか? これは日付で間違って設定されていますか? そして、これを無視する方法は?

4

2 に答える 2

1

よし、見つけた!Android は Date をデバイスのタイムゾーンに変換します。私はそれを却下しなければなりませんでした:

これは機能します:

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 に答える