This question already has answers here:
How would you represent date of birth in your java model?

(6个答案)


4年前关闭。





我目前正在Android上制作一个应用,供用户注册其详细信息。

在我的数据库中,DOB为Date类型。

我会在Java中将DOB声明为String吗? DoubleInt?我很困惑如何解决这个问题,因此它满足数据库的Date格式。

任何帮助都会很棒!

最佳答案

java.time.LocalDate(或类似org.joda.time.LocalDate的逻辑等效类)是表示Java代码中的出生日期(DOB)的最佳方法。

请注意,DOB没有很好地建模为java.sql.Datejava.util.Date:这些模型是即时的时间,而不是与时区无关的日期。

虽然一个人显然是在某个瞬间出生的,但这并不是我们社会上报告出生时的方式。考虑两个在不同时区在同一时刻出生的孩子实际上可能有不同的出生日期-如果NYC的孩子在4月1日凌晨2点出生,那么LA的孩子在3月31日下午10点出生。

当他们去另一个城市(或其他任何地方)时,两个孩子的出生日期都不会改变。因此,如果您存储出生时刻,则还需要存储出生时区,以便正确地将该时刻解释为出生日期。

但是存储瞬间和时区是不方便的:不仅要存储更多的数据,而且很难“用眼”解释它(例如,很难说出(1459438541000, America/Los_Angeles)指的是什么日期)。直接存储和解释年,月和日更加容易:(2016, 3, 31)

关于java - 出生日期是什么Java数据类型? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36336826/

10-11 04:12