等待,不要着急回答“ 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组件等。