java用时间筛选为什么不对呢

java用时间筛选为什么不对呢,第1张

如果Java中使用时间筛选后结果不准确,可能是以下一些原因:

1 时区不匹配:当计算两个时间之间的差异时,必须考虑时区偏移差异。如果您的代码中没有正确处理时区,那么可能会导致时间筛选结果不准确。

2 数据库时间与应用时间不同步:当您使用Java查询数据库时,可能会遇到数据库时间与应用时间不同步的情况。这可能导致您查询的数据不正确。

3 时间格式错误:当您使用Java进行时间筛选时,必须使用正确的时间格式。如果时间格式不正确,将无法正确解析时间数据。

4 日期时间精度问题:Java中的Date、Calendar等时间类的精度通常只能到毫秒级别,如果您查询的时间精度超出了该级别,那么筛选结果可能不准确。

为避免这些问题,您可以使用标准的日期时间处理库,如Joda-Time或Java 8中的时间API,以及使用正确的时间格式和时区处理代码。另外,您还应该检查数据库时间设置与应用时间设置是否一致,以确保时间查询结果的准确性。

CalendarMONTH 从0开始

你设置完 timeset(CalendarMONTH,5)后,判断是其实是6月12日

再给你一些详细资料

MONTH加1的原因:

public static final int MONTH

指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。

简单来说,因为这个值的初始值是0,因此我们要用它来表示正确的月份时就需要加1。

WEEK减1的原因:

public static final int DAY_OF_WEEK

get 和 set 的字段数字,指示一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY

观察代码,你会发现其实week是用来确定随后的字符串week1该如何截取的,我们知道DAY_OF_WEEK是获取当前日期是一周中的第几天,而一周从周日算起,因此当我们取得这个值之后,为了要正确的截取出随后的字符串week1中的那个中文字符,因此它需要减1来达到目的。你只要跟踪一下程序运行,观察变量的赋值就会理解它这样编写的用意了。

定义day时不用的原因:

public static final int DATE

get 和 set 的字段数字,指示一个月中的某天。它与 DAY_OF_MONTH 是同义词。一个月中第一天的值为 1。

根据定义我们可以知道,这个值取得后不需要做任何变更就是程序需要的值。

substring(week, week+1):

public String substring(int beginIndex,

int endIndex)

返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。

根据定义,我们就知道这个方法的用途了。举例来说,假如今天是星期四,那么之前获得的week的值就是4,因为我们取到了DAY_OF_WEEK (这里是5)后又减了1,然后我们用这个变量week来帮助我们截取字符串week1,这里调用了substring(4,5),所以取到的字符就是 “四,正是我们需要的字符。

参考资料:

JDK15

sdfapplyPattern("yyyy-mm-dd");

这一句错了,改成

sdfapplyPattern("yyyy-MM-dd");

就可以了,其他不变。

以上就是关于java用时间筛选为什么不对呢全部的内容,包括:java用时间筛选为什么不对呢、请教有关java程序Calendar类的一个时间小问题、java Calendar 日期相加之后月份不对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9578547.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存