我正在执行下面的代码,它给了我
"Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "12/17/2017 23:10": Value 23 for clockhourOfHalfday must be in the range [1,12]"
DateTimeFormatter dt = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm");
System.out.println(dt.parseDateTime("12/17/2017 23:10"));
如果我将解析"12/17/2017 02:10"
,那么它会成功执行。
所以基本上,我需要解析24小时时钟格式的时间。
提前致谢。
答案 0 :(得分:29)
h
在JodaTime中待了半天
您需要使用H
(或可能k
):
DateTimeFormatter dt = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm");
System.out.println(dt.parseDateTime("12/17/2017 23:10"));
DateTimeFormat API中有更多信息。
答案 1 :(得分:2)
也可以使用简单日期格式来实现。
DateFormat readDate = new SimpleDateFormat( "MM/dd/yyyy HH:mm");
Date date = readDate.parse("12/17/2017 23:10");
DateFormat writeDate = new SimpleDateFormat( "MM/dd/yyyy HH:mm");
System.out.println(writeDate.format(date));