【发布时间】:2013-02-19 04:05:04
【问题描述】:
我有两个日期字段。用户可以从 jQuery 日期时间选择器中选择一个日期,然后将其转换为 UTC 格式(通过 Spring 的自定义属性编辑器)并在提交表单时填充到 Java bean 中。
这些来自 Java bean 的 DateTime 实例由 org.apache.commons.beanutils.PropertyUtils 通过反射检索,例如,
final Object object1 = PropertyUtils.getProperty(beanObject, firstDate);
final Object object2 = PropertyUtils.getProperty(beanObject, secondDate);
这些对象类型转换为DateTime。
if(object1!=null && object2!=null)
{
final DateTime startDate=((DateTime)object1).withZone(DateTimeZone.forID("Asia/Kolkata"));
final DateTime endDate=((DateTime)object2).withZone(DateTimeZone.forID("Asia/Kolkata"));
System.out.println("startDate = "+startDate+"\nendDate = "+endDate);
}
这会产生以下输出。
startDate = 2013-02-17T22:45:59.000+05:30
endDate = 2013-02-18T22:46:00.000+05:30
我需要将这些日期转换成这种格式 - dd-MMM-yyyy HH:mm:ss
我尝试过的以下方法不起作用。
DateTime newStartDate=new DateTime(startDate.toString("dd-MMM-yyyy HH:mm:ss"));
DateTime newEndDate=new DateTime(startDate.toString("dd-MMM-yyyy HH:mm:ss"));
System.out.println("newStartDate = "+newStartDate+"\nnewEndDate = "+newEndDate);
它给出了以下异常。
java.lang.IllegalArgumentException:无效格式:“2013 年 2 月 17 日 22:45:59”在“-Feb-2013 22:45:59”格式不正确
那么如何将这些日期转换成需要的格式呢?
【问题讨论】: