您将如何在Java模型中表示出生日期?

等待,不要着急回答“ java.util.Date”,请考虑以下情形。

具有2个字段的Person对象:“ birthday”和“

nextMeeting”均为java.util.Date。现在将生日作为日期类型列(无时间)存储在数据库中,例如。1979年1月10日,以及nextMeeting作为ex的日期时间类型。2010年1月10日20:00:00。

从数据库中拉出它,JDBC将自动将“生日”设置为午夜。现在,您需要使用RMI或其他技术将此对象发送到其他JVM。

另一方面,JVM具有与原始JVM相同的时区-1h。这是问题开始的地方。nextMeeting成为01-10-2010

19:00:00从用户角度来看,这绝对是正确和正确的…

但是生日变成了30-09-1979 23:00:00,这将在9月30日表示给用户,这实际上不是我们想要的,因为生日显然是静态的,并且不依赖于时区。

因此,正确选择了数据库中的列类型(日期)。这种类型的列通常表示为java.util.Date。但是在我们的例子中,使用的Java类型是错误的。

那么,您将如何代表生日?考虑到您需要在用户界面上操作此对象,例如datepicker组件等。

回答:

使用LOCALDATE的从JodaTime并且只存储日期的生日,而不是时间。

以上是 您将如何在Java模型中表示出生日期? 的全部内容, 来源链接: utcz.com/qa/406144.html

回到顶部