4

私は文字列を持っています

 String time = "2012-09-12 15:04:01";

その文字列をJoda-Timeに解析したい:

DateTimeFormatter dateStringFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime time = dateStringFormat.parseDateTime(date);

しかし、私が時間を印刷するとき

time.toString()

出力は次のとおりです。

2012-09-12T15:04:01.000+03:00

なぜ出力が入力と異なるのですか?私は何を間違えますか?「T」ってなに?前もって感謝します。

4

2 に答える 2

9

日付または数値を解析するときは、文字列としての形式ではなく、その値を追加します。

toString()を実行すると、値はデフォルトの形式に変換されます。

なぜ出力が入力と異なるのですか?

それが同じなら、それは驚くべき偶然の一致でしょう。

私は何を間違っていますか?

値の形式が1つだけであると仮定します。

「T」とは何ですか?

これは、ISO8601形式であることを意味します。


ところで、あなたは数字に関して同じ問題を抱えています

System.out.println(Double.parseDouble("123456789"));
System.out.println(Double.parseDouble("1.1e2"));

プリント

1.23456789E8
110.0

いずれの場合も値は正しいですが、元の形式は記録または保存されません。

于 2012-11-26T11:50:11.983 に答える
1

私はあなたが欲しいと思います...

dateStringFormat.print(time);
于 2012-11-26T11:50:51.733 に答える