我正在尝试使用joda-time来解析表单的日期字符串YYYY-MM-DD.我有这样的测试代码:
DateTimeFormatter dateDecoder = DateTimeFormat.forPattern("YYYY-MM-DD");
DateTime dateTime = dateDecoder.parseDateTime("2005-07-30");
System.out.println(dateTime);
Run Code Online (Sandbox Code Playgroud)
哪个输出:
2005-01-30T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
如您所见,生成的DateTime对象是30 Jan 2005,而不是30 July 2005.
感谢任何帮助.我只是假设这会起作用,因为它是这里列出的日期格式之一.
混淆是ISO格式实际上是什么.YYYY-MM-DD不是ISO格式,实际结果日期是.
所以2005-07-30是在 ISO-8601格式,并规范使用YYYY-MM-DD来描述的格式.YYYY-MM-DD在规范中使用作为模式和任何代码之间没有任何联系.规范的唯一约束是,结果包括一个4位数年份,后面跟一个破折号,后跟一个2位数的月份,然后是一个破折号,后面跟着一个两位数的日期.
因此,可以使用规范$year4-$month2-$day2,这同样可以很好地定义输出格式.
您需要搜索并替换任何输入模式,将"Y"转换为"y",将"D"转换为"d".
我还添加了一些格式化的增强文档.
您的答案在文档中:http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html
字符串格式应类似于:“yyyy-MM-dd”。
| 归档时间: |
|
| 查看次数: |
9419 次 |
| 最近记录: |