-1

我只想知道是否可以使用此示例代码计算两个日期之间的差异,但是当日期格式为 yyyy-MM-dd hh:mm:ss 如果日期格式为 yyyy-MM-dd'T' HH:mm:ss.SSSZ,一切正常。

int days = Days.daysBetween(new DateTime(today), new DateTime(StartTime1)).getDays();
4

1 回答 1

0

它适用于“ ”,因为ISODateTimeFormatyyyy-MM-dd'T'HH:mm:ss.SSSZ支持该格式- 它处理传递给构造函数的任何参数。StringDateTime(Object)

你应该建立一个适合DateTimeFormatter" yyyy-MM-dd hh:mm:ss" 并使用它,例如像这样:

DateTimeFormatterBuilder b = new DateTimeFormatterBuilder();
b.append(ISODateTimeFormat.yearMonthDay());
b.appendLiteral(" ");
b.append(ISODateTimeFormat.hourMinuteSecond());
DateTimeFormatter fmt = b.toFormatter();
// fmt can now be used to parse "yyyy-MM-dd hh:mm:ss" patterns, like so:
System.out.println(fmt.parseDateTime("2010-04-20 20:13:59"));

编辑:要从“ yyyy-MM-dd hh:mm:ss”转换为“”,yyyy-MM-dd'T'HH:mm:ss.SSSZ您可以这样做:

String dateTime = ISODateTimeFormat.dateTime()
        .print(fmt.parseDateTime("2010-04-20 20:13:59"));

不确定与拥有一个有效DateTime的(输出fmt.parseDateTime("2010-04-20 20:13:59")将是什么)相比,这对您有什么好处。

于 2012-06-25T14:07:21.893 回答