如何在java类中定义日期属性?

xec*_*s12 1 java date

我有一个简单的java对象,有几个日期属性,我似乎总是改变我的想法如何定义它们.属性应该定义为日期对象还是字符串?该对象将用于struts 1.3应用程序,其中iBatis作为持久层,mysql作为数据库.数据库列定义为datetime,它们可能为null,我通常不关心时间部分.

public Date getForcastDate();
Run Code Online (Sandbox Code Playgroud)

要么

public String getForcastDate();
Run Code Online (Sandbox Code Playgroud)

大多数现有的代码库都使用字符串,但这对我来说似乎并不合适.

Bri*_*new 6

保持日期为Dates.这样您就可以根据区域设置更改格式,检查无效日期,按类别排序等.

通过将它们保存为字符串,您可能会丢弃数据(例如,如果格式化程序不使用它们,则为毫秒)并且肯定是行为.

使用强类型(例如将它们保持为Dates)将有助于开发.你的方法签名变得更加清晰,使用IDE工具进行重构变得更容易等.否则你最终得到的API除了字符串之外什么都不说话,混淆参数是微不足道的,而且无法弄清楚发生了什么.

提示:查看Joda-Time作为标准的更好替代方案java.util.Date.