Joda日期格式问题

时间:2013-11-12 18:53:52

标签: java date jodatime

我正在尝试使用以下代码,但我收到错误格式无效:“12/11/2013”​​:

String dFrom = ps.utils.gv(request, "dFrom");
String dTo = ps.utils.gv(request, "dTo");

DateTime dateFrom = new DateTime(dFrom);
DateTime dateTo = new DateTime(dTo);

int weeks = Weeks.weeksBetween(dateFrom, dateTo).getWeeks();

有人可以提供一个示例,说明如何格式化日期变量dFrom,这通常是英国格式的日期,例如12/11/2013到ISO日期,例如2013-11-12,我相信Joda支持。

非常感谢任何帮助: - )

1 个答案:

答案 0 :(得分:2)

如果您想将格式12/11/2013转换为2013-11-12,则可以使用

DateTimeFormatter dtf = DateTimeFormat.forPatter("dd/MM/yyyy"); // or MM/dd/yyyy ?
String isoDate = ISODateTimeFormat.date().print(dtf.parseDateTime("12/11/2013"));  

对于ISO格式2013-11-12,您可以使用标准日期格式化程序:
ISODateTimeFormat::date()

DateTime date = ISODateTimeFormat.date().parseDateTime("2013-11-12"); 
String dateAsString = ISODateTimeFormat.date().print(date);

对于格式12/11/2013,您应该创建自己的格式化程序

DateTimeFormatter dtf = DateTimeFormat.forPatter("dd/MM/yyyy"); // or MM/dd/yyyy ?
DateTime date = dtf.parseDateTime("12/11/2013"); 
String dateAsString = dtf.print(date);