2012-11-26 77 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);