我目前正在将 Joda-Time 的一些代码更改为使用 Three-Ten Android Backport。
以下所有方法都将 along
作为参数并返回 along
使用 JodaTime 获得一周的结束和开始对于 Joda-Time 来说是直截了当的:
LocalDate(long time).dayOfWeek().withMaximumValue()
LocalDate(long time).dayOfWeek().withMinimumValue()
对于 Joda-Time,一天的结束和开始也存在同样的问题:
DateTime(long time).withTimeAtStartOfDay().getMillis() + DateUtils.DAY_IN_MILLIS - 1
DateTime(long time).withTimeAtStartOfDay().getMillis()
但是我不明白如何以这种方式使用threeTenAbp。
一天的结束和开始的一个想法:
一天的结束:
LocalDateTime dt = DateTimeUtils.toLocalDateTime(new Timestamp(time));
ZonedDateTime zdt = ZonedDateTime.of(dt, ZoneId.systemDefault());
return zdt.with(LocalTime.MAX).toEpochSecond();
一天的开始:
LocalDateTime dt = DateTimeUtils.toLocalDateTime(new Timestamp(long time));
ZonedDateTime zdt = ZonedDateTime.of(dt, ZoneId.systemDefault());
return zdt.toLocalDate().atStartOfDay(ZoneId.systemDefault()).toEpochSecond();
这似乎很令人费解,并没有真正为我提供任何线索,说明如何获得与long time
传入函数相关的一周开始和结束的时间和时间。