Java中两个String类型的日期如何计算天数差
时间: 2024-02-20 17:01:52 浏览: 206
在Java中,可以使用SimpleDateFormat类将字符串转换为日期类型,然后再通过日期类型计算天数差。具体实现如下:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
public static int daysBetween(String startDateString, String endDateString, String pattern) {
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
Date startDate = dateFormat.parse(startDateString);
Date endDate = dateFormat.parse(endDateString);
Calendar start = Calendar.getInstance();
start.setTime(startDate);
start.set(Calendar.HOUR_OF_DAY, 0);
start.set(Calendar.MINUTE, 0);
start.set(Calendar.SECOND, 0);
start.set(Calendar.MILLISECOND, 0);
Calendar end = Calendar.getInstance();
end.setTime(endDate);
end.set(Calendar.HOUR_OF_DAY, 0);
end.set(Calendar.MINUTE, 0);
end.set(Calendar.SECOND, 0);
end.set(Calendar.MILLISECOND, 0);
long days = (end.getTimeInMillis() - start.getTimeInMillis()) / (24 * 60 * 60 * 1000);
return (int) days;
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
}
```
在上面的代码中,我们定义了一个daysBetween方法,该方法接收三个参数:起始日期字符串、结束日期字符串和日期格式。在方法内部,我们先使用SimpleDateFormat类将起始日期字符串和结束日期字符串转换为日期类型,然后再通过日期类型计算天数差。
使用时,只需要调用该方法并传入要计算的起始日期字符串、结束日期字符串和日期格式即可,例如:
```java
String startDateString = "2021-10-01 12:00:00";
String endDateString = "2021-10-05 12:00:00";
String pattern = "yyyy-MM-dd HH:mm:ss";
int days = DateUtils.daysBetween(startDateString, endDateString, pattern);
System.out.println(days); // 输出4
```
这段代码会输出4,因为结束日期比起始日期晚4天。
阅读全文