android – 如何将Joda Instant转换为LocalDate,反之亦然?

据我所知,Joda Instant与Unix Timestamp类似,它存储自1.1.1970以来的毫秒数.所以我想在我的Android SQLite数据库中将其作为INTEGER插入.
但在我的应用程序中,我使用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();

反方向也是needs a timezone.

Instant instant = Instant.now();
DateTimeZone zone = DateTimeZone.getDefault();
LocalDate date = instant.toDateTime(zone).toLocalDate();

虽然可以省略Joda-Time中的区域参数(这意味着系统时区),但我建议明确指定它以使时区依赖性更加清晰.同一时刻/时刻可能与全球不同日期有关(由于某些地点的午夜变化或跨越国际日期线).

上一篇:PHP手册整理 - 函数【内置函数(PHP信息相关)】


下一篇:Springboot漫游日志(22)