Android使用Joda时间来计算日期之间的差异

时间:2012-06-25 13:32:54

标签: android datetime jodatime

我只想知道是否可以使用此示例代码计算两个日期之间的差异,但是当日期格式为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();

1 个答案:

答案 0 :(得分:0)

它与“yyyy-MM-dd'T'HH:mm:ss.SSSZ”一起使用,因为ISODateTimeFormat支持该格式 - 它处理传递给String构造函数的任何DateTime(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")的输出将会是什么)相比,不确定你会有什么好处。