如何将joda datetime转换为String,反之亦然

raj*_*har 15 java datetime

有没有办法将Joda DateTime转换为String,然后从该String转换为DateTime.

DateTime d = ..;
String date = d.toString();
DateTime dateTime = DateTime.parse(date);
Run Code Online (Sandbox Code Playgroud)

我的问题是上述方法是否有效或需要使用格式化程序.

Ram*_*far 16

试试这个

DateTime dt = new DateTime();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
String dtStr = fmt.print(dt);
Run Code Online (Sandbox Code Playgroud)

  • 陷阱:此代码省略了格式的时区,因此您获得的值不一定是您开始使用的值. (4认同)
  • 问题要求进行两次转换(datetime->字符串-> datetime),但这仅提供了一种方法(datetime->字符串)。 (2认同)

kar*_*fai 6

对于那些想要解析回值的人toString可以阅读我的答案。

如果你仔细阅读实现DateTime。该toString方法被 覆盖AbstractInstant

@ToString
public String toString() {
    return ISODateTimeFormat.dateTime().print(this);
}
Run Code Online (Sandbox Code Playgroud)

现在,解析以下值toString

DateTime dt = new DateTime();
String dtStr = dt.toString();
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
DateTime newDt = fmt.parse(dtStr);
Run Code Online (Sandbox Code Playgroud)