gpt4 book ai didi

java - Android获取两天之间的天数对于低于和高于6.0的Android返回不同的值

转载 作者:行者123 更新时间:2023-12-02 03:29:54 24 4
gpt4 key购买 nike

我尝试使用下面的代码获取两个特定日期之间的不同日期,但传递的相同日期为 Android 6.0 以下和以上的 android 返回不同的值

这是我获取天数的函数:

Calendar cal = Calendar.getInstance();
Calendar base_cal = Calendar.getInstance();
baseDate = chineseDateFormat.parse("1900-1-3");
base_cal.setTime(baseDate);
int offset = (int) ((cal.getTimeInMillis() - base_cal.getTimeInMillis()) / 86400000L);

我意识到cal.getTimeInMillis()可以为不同的操作系统版本返回相同的值,但base_cal.getTimeInMillis()将为不同的android操作系统版本返回不同的值而且总有一天会有所不同

最佳答案

您的“baseDate”是解析日期字符串的结果。我不懂中文,所以我看不出格式是什么,但我怀疑问题是你解析的日期与 getTimeInMillis() 返回的日期有不同的时间,结果是四舍五入错误。

我进一步怀疑您期望的是两个日期之间的差异,而不考虑一天中的时间。

正确且可重复地执行此操作的最简单方法是使用 Joda 日期库。有一个专门针对 Android 的端口 https://github.com/dlew/joda-time-android

您可以在Number of days between two dates in Joda-Time查看示例

关于java - Android获取两天之间的天数对于低于和高于6.0的Android返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38236725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com