java - Java 中的今天过期日期

标签 java date

我需要检查给定日期是否在今天 23:59:59 之后,如何创建今天 23:59:59 的日期对象?

最佳答案

使用java.util.Calendar :

Calendar cal = Calendar.getInstance(); // represents right now, i.e. today's date
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999); // credit to f1sh

Date date = cal.getTime();

不过,我认为您可能从稍微错误的角度来处理这个问题。与其尝试创建午夜之前一个原子的 Date 实例,更好的方法可能是创建表示午夜的 Date 并测试当前时间是否严格小于它。我相信,就您对其他阅读代码的意图而言,这会稍微清楚一些。


或者,您可以使用知道如何转换回日期的第三方日期 API。 Java 的内置日期 API 通常被认为在许多方面存在缺陷。我不建议仅使用另一个库来执行此操作,但如果您必须进行大量日期操作和/或已经在使用像 Joda Time 这样的库你可以更简单地表达这个概念。例如,Joda Time 有一个 DateMidnight 类,可以更轻松地与您正在执行的类型的“原始”日期进行比较,而不会出现微妙的问题(比如在我的第一次剪辑中没有设置毫秒).

关于java - Java 中的今天过期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404783/

相关文章:

java - 如何从日历中删除日期?

sql-server - 以日期为参数在T-SQL中执行存储过程

date - 从当前日期减去天数

java - 打开 Android 相机应用程序并按原样使用它

java - 将字符串转换为日历。最简单的方法是什么?

java - Ant - 如果条件 - 从外部数组/文件读取并将其与第一个参数进行比较

java - Gradle 从 .tmpl 文件生成 java 源代码

Java String to Date 无法解析的日期

java - 无法弄清楚为什么程序无法正常运行

java - java 初学者词法分析器