【问题标题】:Backward alternative solution for ChronoUnit.Days.between() [closed]ChronoUnit.Days.between() 的后向替代解决方案 [关闭]
【发布时间】:2019-02-04 12:44:55
【问题描述】:

我需要适用于 API 26 之前的 Android 版本的 ChronoUnit.Days.between() 替代解决方案。

请!

【问题讨论】:

    标签: java android java-8 java-time date-difference


    【解决方案1】:

    您可以使用ThreeTen Android Backport

    您所指的 ChronoUnit 枚举是 java.time(现代 Java 日期和时间 API)的一部分。这已被向后移植,并且向后移植进一步适用于 Android。因此,在大多数情况下,您可以保留为 API 级别 26 编写的代码,只修改导入以导入 org.threeten.bp.temporal.ChronoUnit 等。

    【讨论】:

    • 通常我不会支持仅链接的答案,但这个答案很重要,并且确实完全回答了这个问题。这个问题不够具体,不足以保证答案更深入。
    【解决方案2】:

    您可以改用 TimeUnit(从 Java 5 开始):

    long diffEpochMillis = Math.abs(lastDate.getTime() - firstDate.getTime());
    long diffDays = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
    
    

    【讨论】:

    • 是否考虑闰年和夏令时?
    • 我会说它没有考虑时区信息。它只是计算自纪元以来的毫秒数,并将该数量转换为天数。是否需要考虑闰年、间隔日和其他时区特定信息?
    • 是的,确实需要闰年
    猜你喜欢
    • 2012-10-11
    • 2010-11-27
    • 1970-01-01
    • 2021-09-23
    • 2011-04-13
    • 2016-10-24
    • 1970-01-01
    • 2020-08-29
    • 2013-10-19
    相关资源
    最近更新 更多