1

我有两个日期字段。用户可以从 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:无效格式:“17-Feb-2013 22:45:59”在“-Feb-2013 22:45:59”格式错误

那么如何将这些日期转换成所需的格式呢?

4

1 回答 1

1

ADateTime没有任何格式。它有一个值,即自 1970 年 1 月 1 日以来的毫秒数,以及一个年表。只有当您将 a 转换DateTime为 String 时,您才需要选择一种格式。而且您已经知道如何做到这一点,因为您在您的问题中这样做了。

所以你试图做的只是没有意义。

于 2013-02-18T20:05:04.933 回答