在我们平时的开发工作中,肯定离不开对日期时间的处理。
比如我现在需要获取三天前的 0 点,大家都是怎么做的呢?
是这样吗:
import java.util.Date;
public classMain {
publicstaticvoidmain(String[] args) {
// 获取当前时间
DatecurrentDate = newDate();
// 计算三天前的时间
finallongDAY = 24 * 60 * 60 * 1000;
longthreeDaysAgoMillis = currentDate.getTime() - (3 * DAY);
DatethreeDaysAgoDate = newDate(threeDaysAgoMillis);
// 设置时间为0点
threeDaysAgoDate.setHours(0);
threeDaysAgoDate.setMinutes(0);
threeDaysAgoDate.setSeconds(0);
// 输出结果
System.out.println("三天前的 0 点时间:" + threeDaysAgoDate);
}
}
其实
LocalDate
里有很方便且现成的实现:
import java.time.LocalDate;
public classMain {
publicstaticvoidmain(String[] args) {
// 获取当前日期
LocalDatetoday = LocalDate.now();
// 减去三天
LocalDatethreeDaysAgo = today.minusDays(3);
// 输出三天前的0点时间
System.out.println("三天前的 0 点时间:" + threeDaysAgo.atStartOfDay());
}
}
大家更喜欢哪种呢?欢迎投票并在评论区留下自己的看法。
完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!
在线访问:https://www.codecopy.cn/post/k2j9rv
更多优质代码欢迎进入小程序查看!
往期推荐