SQLite功能很好 - julianday。它是一种简单的方式来存储日期,比较,排序......(如果我错了 - 为什么?) 但我找不到任何方法来操纵像Android API中的julianday这样的日期。 有没有办法(除了自己制作或使用第三方库)将julianday转换为Date并返回?
答案 0 :(得分:1)
SQLite julianday()
的唯一功能似乎非常有用,它能够找到两个日期字符串之间的天数差异。这是可能的,因为可以在两个日期找到自Julian日历开始以来的天数,并计算它们的差异。了解自公元前4714年11月24日以来的天数。除非你当时还活着,否则它本身就没那么有用了,在这种情况下你可能是一个吸血鬼。
我们也可以在Java Android中找到两个日期之间的天数差异,虽然它有点麻烦:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd");
try {
Date date1 = sdf.parse("2017-02-21");
Date date2 = sdf.parse("2017-02-28");
long diffInMillis = date2.getTime() - date1.getTime();
int numDays = (int)diffInMillis / 1000*60*60*24;
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
Java使用毫秒时间戳,它与Unix时间戳相同,但是用毫秒而不是秒。
因此,要将朱利安日数转换为Java毫秒值,请使用strftime()
并浏览Unix时间戳:
SELECT strftime('%s', TimestampColumn) * 1000 FROM ...
要将Java毫秒值转换为julian天数,请不要直接插入,而是在其上调用julianday()
:
INSERT INTO ... VALUES (..., julianday(? / 1000, 'unixepoch'), ...);