gpt4 book ai didi

java - 在 java 中获取今天的开始时间时发生了奇怪的事情

转载 作者:行者123 更新时间:2023-11-29 07:42:00 25 4
gpt4 key购买 nike

我写了下面的代码来获取今天的开始时间,我的目的是删除今天过去的毫秒数以获取它的开始时间:

    long currentTime = System.currentTimeMillis();
long startTimeOfToday = currentTime - currentTime%(24 * 60 * 60 * 1000);
System.out.println(new Date(startTimeOfToday));

但是打印出来的结果是

Thu Mar 19 08:00:00 GMT+08:00 2015

我知道这些代码一定有问题,谁能帮我解决一下,非常感谢。

最佳答案

如果你想得到没有时间部分的本地日期,你应该使用 Calendar 而不是 Date。因为 Date 对时区一无所知。

// this gives you the milliseconds of timezione GMT
long currentTime = System.currentTimeMillis();
// you remove the milliseconds related to GMT
...
// you print the date related to your timezone, which has an offset of +08:00
System.out.println(new Date(startTimeOfToday));

Calendar 可以处理时区。

// this gets a calendar for your default timezone
Calendar cal = GregorianCalendar.getInstance();
// remove the timepart of your timezone
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
// shows your local date at 00:00
System.out.println(new Date(cal.getTimeInMillis()));

关于java - 在 java 中获取今天的开始时间时发生了奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29138661/

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