0

我正在尝试使用以下代码,但收到错误无效格式:“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)格式化为我相信 Joda 支持的 ISO 日期(例如 2013-11-12)。

任何帮助将非常感激 :-)

4

1 回答 1

2

如果要将格式转换12/11/20132013-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); 
于 2013-11-12T18:59:54.100 回答