Joda-Time:解析字符串

Jim*_*Jim 4 java jodatime

我有一个字符串

 String time = "2012-09-12 15:04:01";
Run Code Online (Sandbox Code Playgroud)

我想将该字符串解析为Joda-Time:

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

但是当我打印时间

time.toString()
Run Code Online (Sandbox Code Playgroud)

输出是:

2012-09-12T15:04:01.000+03:00
Run Code Online (Sandbox Code Playgroud)

为什么输出与输入不同?我做错了什么?我的意思是什么'T'?提前致谢.

Pet*_*rey 9

当您解析日期或数字时,您需要额外增加其值,而不是它作为字符串的格式.

当你toString()时,该值将其转换为默认格式.

为什么输出与输入不同?

如果它是相同的,那将是令人惊讶的巧合.

我做错了什么?

假设只有一种值的格式.

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

这意味着它采用ISO 8601格式.


顺便说一句,你对数字有同样的问题

System.out.println(Double.parseDouble("123456789"));
System.out.println(Double.parseDouble("1.1e2"));
Run Code Online (Sandbox Code Playgroud)

版画

1.23456789E8
110.0
Run Code Online (Sandbox Code Playgroud)

在每种情况下,值都是正确的,但不记录或保留原始格式.