java - 如何在 Java 8 中格式化和比较 DateTime(如果一个日期为空)?
问题描述
如何使用 Java 8 修改以下日期比较,从而将整个这些方法减少为更少的行,其中也包括 Null Safety?
//Format and convert to date
private static Date handleDate(String dateInString) {
if(dateInString == null) {
return null;
}
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
return formatter.parse(dateInString);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
//Checks if dates are equal
private static boolean dateEquals(Date date1, Date date2) {
if (date1 == null && date2 != null) {
return false;
}
if (date2 == null && date1 != null) {
// We already have data, don't want null there then.
return false;
}
if (date1 != null && date2 != null) {
if(date1.equals(date2)) {
return true;
}
}
return false;
}
//Main
public static void main(String[] args) {
Date current = handleDate("2019-09-02T00:00:00");
Date existing = handleDate("2019-09-02T01:00:00");
System.out.println(dateEquals(existing, current));
另外我不想进行空检查,那么有什么实用程序可以这样做吗?
解决方案
对于容空比较:(java.util.Objects.equals(date1, date2)
从 Java 7 开始)
对于格式化,我不知道有任何此类实用程序。
推荐阅读
- json - 在 Swift 中访问嵌套数据
- lua - 我可以使用 table.concat 作为一组参数吗?
- python - PyQt5 到 PySide2,在不同的类中加载 UI 文件
- c# - C#:如何设置 Fody Nullguard
- ruby-on-rails - #
- netflix-eureka - 如何在TIBCO BE和BW中调用Spring cloud eureka服务。有可能吗?
- javascript - formvalidation.io 隐藏字段 Internet Explorer 错误
- asp.net - IIS 突然给了我错误的物理路径。它以前工作过。网络
- reporting-services - SSRS 突出显示单元格中的句子
- python - “user_id”列中的空值违反非空约束细节: