Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过日历获取当天的最后一次时间会产生错误的结果_Java_Date_Calendar - Fatal编程技术网

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(在我的本地时区)-我们需要知道您如何调用它。
日历
使用起来有点困难。看,还有。非常感谢你指出这一点。把这个答案标记为正确的原因,这是一个解释得很好的最精确的答案。