是否有java.util.Date的字段转换器?

时间:2012-10-18 00:36:29

标签: java playorm

我想在playOrm映射中使用Date字段。但是,如果我使用

private Date birthDate;

在我的bean中,它给了我一个例外,说不支持这种类型。

2 个答案:

答案 0 :(得分:1)

如果您打开问题,我可以添加日期。当人们使用Date来表示这一点时,我当时正在考虑实际抛出一个例外。

  

请使用joda-time中的LocalDate,LocalTime或LocalDateTime   应该在jdk7中加入,但很可能最终会被加入   jdk8。原因是java.util.Date和java中的Calendar   有bug,并且在jdk bug系统中有很多已知错误。

也可以看到这一点 Joda Time to be included in Java 7?

但是,如果您仍想使用日期,请按照

进行操作
Map<Class, Converter> converters = new HashMap<Class, Converter>();
Converter d = new DateConverter();
converters.put(Date.class, d);

然后,您需要使用DateConverter类实现Converter接口,并将byte [] to Date和Date实现为byte []和String to Date和Date to String方法。注意:这些方法都被称为S-SQL和转换实体...它们都使用相同的转换器。

字符串转换非常重要,因为命令行工具将使用它们将命令行S-SQL转换为查询对象。

但是,如果你想将它内置到PlayOrm中,只需打开一个问题就可以很快完成。但我仍然建议你在joda-time中使用LocalDateTime,因为它更可靠,你可以用它做更多的事情....在使用joda-time之后,它与C#date apis相比,并且比旧java的东西更好。

迪安

答案 1 :(得分:0)

我不确定你要求的是什么,但正如Java API for Date中所述,“从JDK 1.1开始,应该使用Calendar类来转换日期和时间字段以及DateFormat类应该用于格式化和解析日期字符串。不推荐使用Date中的相应方法。“