Java 如何判断某个时间是否是当天
引言
在开发中,经常会遇到需要判断某个时间是否是当天的需求。比如,在一个社交应用中,用户发布了一条动态,我们需要判断该动态是在今天发布的还是之前的。本文将介绍如何使用Java来判断某个时间是否是当天,并给出相应的代码示例。
方案
方法一:比较日期字符串
一种简单的方法是将待判断的时间转化为日期字符串,然后比较日期字符串是否与当前日期字符串相等。
首先,我们需要获取当前日期的字符串表示形式。可以使用java.time.LocalDate
类来获取当前日期,并使用java.time.format.DateTimeFormatter
类将日期转化为字符串。以下是获取当前日期字符串的代码示例:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateUtils {
public static String getCurrentDate() {
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return currentDate.format(formatter);
}
}
然后,我们可以将待判断的时间转化为日期字符串,并与当前日期字符串进行比较。以下是判断某个时间是否是当天的代码示例:
public class DateUtils {
// 省略获取当前日期的方法
public static boolean isToday(String dateStr) {
String currentDate = getCurrentDate();
return currentDate.equals(dateStr);
}
}
方法二:比较日期对象
另一种方法是将待判断的时间转化为日期对象,然后比较日期对象是否与当前日期对象相等。
同样地,我们需要获取当前日期对象。可以使用java.time.LocalDate
类来获取当前日期。以下是获取当前日期对象的代码示例:
import java.time.LocalDate;
public class DateUtils {
public static LocalDate getCurrentDate() {
return LocalDate.now();
}
}
然后,我们可以将待判断的时间转化为日期对象,并与当前日期对象进行比较。以下是判断某个时间是否是当天的代码示例:
import java.time.LocalDate;
public class DateUtils {
// 省略获取当前日期对象的方法
public static boolean isToday(LocalDate date) {
LocalDate currentDate = getCurrentDate();
return currentDate.equals(date);
}
}
示例
下面的示例演示了如何使用上述两种方法判断某个时间是否是当天:
public class Main {
public static void main(String[] args) {
String dateStr = "2022-01-01";
// 使用方法一:比较日期字符串
boolean isToday1 = DateUtils.isToday(dateStr);
System.out.println("方法一:比较日期字符串");
System.out.println(dateStr + " 是否是当天:" + isToday1);
// 使用方法二:比较日期对象
LocalDate date = LocalDate.parse(dateStr);
boolean isToday2 = DateUtils.isToday(date);
System.out.println("方法二:比较日期对象");
System.out.println(dateStr + " 是否是当天:" + isToday2);
}
}
运行上述示例,输出结果如下:
方法一:比较日期字符串
2022-01-01 是否是当天:false
方法二:比较日期对象
2022-01-01 是否是当天:false
可以看到,上述示例都返回了false
,因为日期字符串和日期对象都表示的是2022年1月1日,而当前日期是2022年2月28日,所以不是当天。
关系图
下面是本文所介绍的方案中的类之间的关系图:
erDiagram
class DateUtils {
getCurrentDate()
isToday()
}
class Main {
main()
}
class LocalDate {
parse()
}
class DateTimeFormatter {
ofPattern()
}
DateUtils -- LocalDate
DateUtils -- DateTimeFormatter
Main -- DateUtils
Main -- LocalDate
状态图
下面是判断某个时间是否是当天的状态图:
stateDiagram
[*] --> 判断
判断 --> 是当天: true
判断 --> 不是当天: false
是当天 --> [*]
不是当天 --> [*]
结论
本文介绍了如何使用Java来判断某个时间是否是当天。通过比较日期字符串或日期对象与当前日期字符串或日期对象