Java 自注册以来的天数

Java 自注册以来的天数,java,Java,我编写了一个小控制台程序,现在我将他们加入的日期存储在一个数据库中,如 CreateDate 2011-04-15 17:52:57 现在我想做一个这样的检查:一个函数,它可以得到这个家伙注册了多少天 if(player.getDaysSinceRegistration) { 感谢您的帮助。有一个简单的方法可以做到这一点: Days.daysBetween(new DateTime(registeredDate), new DateTime()).getDays(); 没有第三方库: (

我编写了一个小控制台程序,现在我将他们加入的日期存储在一个数据库中,如

CreateDate
2011-04-15 17:52:57
现在我想做一个这样的检查:一个函数,它可以得到这个家伙注册了多少天

if(player.getDaysSinceRegistration) { 
感谢您的帮助。

有一个简单的方法可以做到这一点:

Days.daysBetween(new DateTime(registeredDate), new DateTime()).getDays();
没有第三方库:

(System.currentTimeMillis() - registeredDate.getTime()) / MILLIS_PER_DAY;

首先,不要以文本形式在数据库中存储日期


您应该将它们保存为数据库日期类型,如数字或VARCHAR,因为这将允许您同时要求数据库进行日期计算-确切的方法是特定于数据库的-JDBC驱动程序会自动将其拉入Java日期对象中,这比字符串更容易处理。请参阅Bozho的答案,以获得在Java层中执行此操作的建议。

仅需了解更多信息-数据库条目是否只是一个字符串?该字符串是否包含“CreateDate”文本?您不能只使用Date对象吗?您是否尝试获取当前日期并将其与CreateDate进行比较?a您第一句话中的“他们”指的是谁?b getDays将返回一个整数,但if正在测试布尔值-如果p.getDays>42,这不应该吗?你有什么问题?在数据库中检索日期?计算时间跨度?编译器错误?你问题的标题也不是描述性的。