Java 通过日历获取当天的最后一次时间会产生错误的结果
我正在尝试获取当天的最后时间。Java 通过日历获取当天的最后一次时间会产生错误的结果,java,date,calendar,Java,Date,Calendar,我正在尝试获取当天的最后时间。 例如: 今天的最后一次是2015年7月10日23:59:59:999 因此,我编写了以下方法: private static Date getLastDateOfDay() { final Calendar cal = Calendar.getInstance(); cal.set(Calendar.MILLISECOND, 999); cal.set(Calendar.SECOND, 59); cal.set(Calendar.
例如:
今天的最后一次是2015年7月10日23:59:59:999
因此,我编写了以下方法:
private static Date getLastDateOfDay() {
final Calendar cal = Calendar.getInstance();
cal.set(Calendar.MILLISECOND, 999);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.HOUR, 23);
return cal.getTime();
}
这应获取当前日期,然后设置:
小时至23
差59分
秒到59
毫秒到999
所以这应该给我今天最后一毫秒的时间。 但当我使用这种方法时,比如:
Date date = getLastDateOfDay();
那么日期的值为:11.07.2015 23:59:59:999
我错过什么了吗?我做错什么了吗?
请帮我做这个。
Thx提前。您可以尝试为日历实例设置显式时区,即:
final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC");
这个答案也有助于:
设置
cal.set(Calendar.HOUR_OF_DAY, 23);
你不能用23小时 公共静态最终整小时 get和set的字段号,指示上午或下午的时间。小时用于12小时时钟(0-11)。中午和午夜由0表示,而不是由12表示。例如,在晚上10:04:15.250,时间是10点
你到底怎么看“11.07.2015 23:59:59:999”?例如,这不是Date.toString()的结果。另外请注意,当前您正在使用系统时区-您确定这是您想要的吗?当我这样做时,我会得到当前日期和23:59:59(在我的本地时区)-我们需要知道您如何调用它。
日历
使用起来有点困难。看,还有。非常感谢你指出这一点。把这个答案标记为正确的原因,这是一个解释得很好的最精确的答案。