1

タイムスタンプ文字列"1989-01-01 00:00:00"があります。それをローカルの日付形式に変換する必要があります。

私は実行します:

SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat.getDateFormat(getContext()).format(TIMESTAMPFORMAT.parse("1989-01-01 00:00:00"));

getDateFormat が返す31.12.1988

なんで?

どうすれば受け取れます01.01.1989か???

4

2 に答える 2

2

これはおそらく、関連するタイム ゾーンに関係しています。解析に使用しているタイムゾーンとは異なるタイムゾーンでフォーマットしている可能性が強く、値は基本的に真夜中前になります。両方で同じタイム ゾーンを使用できる場合は、うまくいく可能性があります。

可能であれば、代わりにJoda TimeLocalDateを使用することをお勧めします。

于 2012-10-12T13:13:15.453 に答える
2

フォーマット時にタイムゾーンをスキップするには、以下のようにデフォルトに設定することをお勧めします:

SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TIMESTAMPFORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));
于 2012-10-12T13:18:34.240 に答える