2012-11-26 102 views
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'是什麼?提前致謝。

回答

9

當你解析一個日期或數字時,你的值是額外的,而不是它作爲一個字符串的格式。

當您將toString()的值轉換爲默認格式時。

爲什麼輸出與輸入不同?

如果它是相同的,那將是令人驚訝的巧合。

我做錯了什麼?

假設只有一種值的格式。

我的意思是什麼是'T'?

這意味着它是在ISO 8601格式。


BTW你有號碼相同的問題

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

打印

1.23456789E8 
110.0 

在每種情況下的數值是正確的,但原來的格式不記錄或保存。

+0

啊,我知道了,謝謝,這是明確的 – Jim

1

我想你想......

dateStringFormat.print(time);