0

我在获取 DateTime 的正确格式时遇到了麻烦。我期待格式 dd/MM/yyyy HH:mm:ss 而我变得太冗长了。例如:

        DateTime dt;
        String timeStamp = day + "/" + month + "/" + year + " " + hour + ":" + minute + ":00"; 
        DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
        dt = formatter.parseDateTime(timeStamp);

我得到了类似的东西:

2013-06-13T00:15:00.000+02:00

因此,为什么格式化程序没有按预期格式化?有什么线索吗?

谢谢!亚历克斯

4

4 回答 4

1

您仅使用格式化程序进行解析,而不是格式化。如果您也将它用于格式化,例如使用print()方法,您会看到您期望的字符串。

此外,您似乎正在解析字符串并立即将其替换为当前日期时间。我会删除你的最后一行或它之前的所有行。

于 2013-06-13T13:21:19.493 回答
0

您告诉格式化程序如何读取您手工制作的timeStamp字符串。您没有告诉系统如何输出结果DateTime对象。

正如 Daniel Arndt 在下面指出的那样,您可以这样做:

System.out.println(dt.toString(formatter));

了解DateTime对象没有格式。格式是将字符串转换为DateTime对象,将DateTime对象转换为字符串。你在屏幕上看到的总是字符串。所以如果你输出你的DateTime对象,如上所述,你还需要告诉系统如何格式化它。如果您不这样做,它将使用系统特定的默认格式,这就是您获取2013-06-13T00:15:00.000+02:00字符串时发生的情况。

长话短说:您的DateTime对象包含正确的数据。如果你提供了正确的格式,当你输出它时,它看起来就像你期望的那样。

于 2013-06-13T13:21:38.693 回答
0

您需要使用格式化程序打印日期。如果您在该dt = new DateTime();行之前执行以下代码,则应该可以使用:

System.out.println(dt.toString(formatter));
于 2013-06-13T13:29:23.523 回答
0

线

dt = new DateTime();

取代您之前所做的所有努力。所以请删除它并打印dt

于 2013-06-13T13:25:50.020 回答