0

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

private Date birthDate;

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

4

2 回答 2

1

如果您打开问题,我可以添加日期。当人们使用 Date 时,我正在考虑实际上抛出一个异常,尽管如此..

请使用 joda-time 中的 LocalDate、LocalTime 或 LocalDateTime,它们本应添加到 jdk7 中,但很可能最终会添加到 jdk8 中。原因是 java.util.Date 和 java 中的 Calendar 存在错误,并且在 jdk 错误系统中有许多已知错误。

是否也看到将 Joda Time 包含在 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 to byte[] 和 String to Date 和 Date to String 方法。注意:这些方法都用于 S-SQL 和转换实体......它们都使用相同的转换器。

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

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

院长

于 2012-10-18T01:04:34.063 回答
0

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

于 2012-10-18T01:05:35.017 回答