Java日期将分钟和秒设置为0
我想将日期的分和秒设置为0, 但我发现这些方法已经被弃用了Java日期将分钟和秒设置为0,java,datetime,java-8,minute,Java,Datetime,Java 8,Minute,我想将日期的分和秒设置为0, 但我发现这些方法已经被弃用了 Date yesterday = Date.from(Instant.now().minus(24, ChronoUnit.HOURS)); yesterday.setMinutes(0); yesterday.setSeconds(0); TL;博士 刚才跑步给了我很大的帮助 昨天,分与秒设置为0:2019-03-17T23:00+01:00[欧洲/马德里] 定义昨天 如果你打算“昨天在同一
Date yesterday = Date.from(Instant.now().minus(24, ChronoUnit.HOURS));
yesterday.setMinutes(0);
yesterday.setSeconds(0);
TL;博士
刚才跑步给了我很大的帮助
昨天,分与秒设置为0:2019-03-17T23:00+01:00[欧洲/马德里]
定义昨天
如果你打算“昨天在同一时间”,那并不总是24小时前。由于夏季时间(DST)和其他异常,一天可能是例如23、23、5或25小时
java.time
java.time的zoneDateTime
类是现代java日期和时间API,它考虑了时区中的时间异常。所以当你减去一天,你得到的确实是昨天的相同时间,如果这个时间存在的话
.truncatedTo(ChronoUnit.HOURS)
将所讨论时区中的分钟、秒和秒分数设置为0
您试图使用Date
类,但在Java8中不应该这样做。它设计拙劣,而且早已过时。我发现java.time更适合使用
如果你需要一个老式的约会
对于您现在无法更改或无法负担更改的旧API,您可能需要一个日期
。在这种情况下,仅在最后一刻转换:
Instant yesterdayInstant = yesterday.toInstant();
Date yesterdayDate = Date.from(yesterdayInstant);
System.out.println("As old-fashoined Date: " + yesterdayDate);
在我的时区(欧洲/哥本哈根,目前同意欧洲/马德里),我得到
截止日期:2019年3月17日星期日23:00:00 CET
链接
解释如何使用java.time。您使用的是
Date
类,但在Java8中不应该这样做。它设计拙劣,而且早已过时。坚持使用来自的Instant
from。并使用昨天=昨天.truncatedTo(ChronoUnit.HOURS)代码>。
Instant yesterdayInstant = yesterday.toInstant();
Date yesterdayDate = Date.from(yesterdayInstant);
System.out.println("As old-fashoined Date: " + yesterdayDate);