我想存储我最后一次在SQLite数据库中插入一个值
所以我使用的是LocalDate.now().toString()
,这就是我作为行的一部分存储的内容,即TEXT
列。
现在,当我检索行时,我希望能够检查上次更新是否超过X天(不确定X是否还是1或7)。
我怎么能这样做?
我在google中看到的大多数答案涉及locale,我认为它不适合我的情况
所以我被困在这里:
// obj comes from db
LocalDate lastCheck = new LocalDate(obj.getLastUpdate());
//How can I do the check correctly?
if(Days.daysBetween(LocalDate.now(), lastCheck) > X days) {
}
更新
如果有帮助我不需要准确。基本上它就像一个更新缓存,所以如果有一个角落的情况我明确检查我很好用
答案 0 :(得分:1)
如果您确定拖曳日期是在同一年,您可以使用
LocalDate.now().getDayOfYear ()-lastCheck.getDayOfYear ()
试试这个
LocalDate last=LocalDate.of ( 2015, Month.DECEMBER, 31);
LocalDate now= LocalDate.of ( 2016, Month.JANUARY, 1);
java.time.Period period=java.time.Period.between ( last, now);
System.out.println ( period.getDays () );
答案 1 :(得分:0)
获取当前日期(和时间)的最简单方法就是创建一个像这样的新日期:
Date now = new Date();
接下来,您希望使用默认的mysql语法将其存储到SQLite。你可以这样:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormat.format(now);
然后,当你想稍后从mysql日期语法中取回你的存储日期时,你可以这样做:
Date dateStored = dateFormat.parse(dateString)
我可以看到你正在使用Joda Time库,你可以这样做:
DateTime dateTimeNow = DateTime.now();
DateTime dateTimeStored = new DateTime(dateStored)
Days days = Days.daysBetween(dateTimeStored, dateTimeNow);
int daysNumber = days.getDays()
你拥有它!