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() 时,该值会将其转换为默认格式。

为什么输出与输入不同?

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

我做错了什么?

假设只有一种格式的值。

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

这意味着它是ISO 8601格式。


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

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 回答