我知道Joda Instant类似于Unix Timestamp,因为它存储了自1.1.1970以来的毫秒数。所以我想把它作为整数插入我的安卓SQLite数据库中。但是在我的应用程序中,我使用Joda LocalDate,所以我需要将LocalDate转换为Instants,反之亦然。
谁能告诉我怎么做?
为了将LocalDate
转换为Instant
,您需要一天中的时间和时区。类LocalDate
提供了方法toDateTime(),因此您可以使用此示例并根据需要对其进行调整:
LocalDate date = new LocalDate();
LocalTime time = LocalTime.MIDNIGHT;
DateTimeZone zone = DateTimeZone.getDefault();
Instant instant = date.toDateTime(time, zone).toInstant();
相反的方向也需要时区。
Instant instant = Instant.now();
DateTimeZone zone = DateTimeZone.getDefault();
LocalDate date = instant.toDateTime(zone).toLocalDate();
虽然可以在 Joda-Time 中省略区域参数(这意味着系统时区),但我建议明确指定它以使时区依赖关系更清晰。同一时刻/时刻可能与全球不同日期相关(由于某些地点的午夜变化或由于越过国际日期变更线)。