字符串转化为日期时间,
import java.time.LocalDate;
public class DateTest8 {
public static void main(String[] args) {
// 定义一个时间字符串,日期是2019年1月1日
String date = "2019-01-01";
// 把字符串转化位 LocalDate 对象,并得到字符串匹配的日期
LocalDate date2 = LocalDate.parse(date);
// 打印出日期
System.out.println(date2.toString());
}
}
如上所示,LocalDateTime.parse(date)
中的parse方法可以把日期字符串转化为日期类型,这个字符串格式是年-月-日 时:分:秒(英文格式是yyyy-MM-dd HH:mm:ss),其中年是四位yyyy,月是两位MM,日也是两位dd这个不能错。
如果日期格式不是yyyy-MM-dd
则需要借助yyyy-MM-dd,那么就要借助 DateTimeFormatter
比如
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateTest81 {
public static void main(String[] args) {
// 定义一个时间字符串,日期是2019年1月1日
String date = "2019/01/01";
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy/MM/dd");
// 把字符串转化位 LocalDate 对象,并得到字符串匹配的日期
LocalDate date2 = LocalDate.parse(date,df);
// 打印出日期
System.out.println(date2.toString());
}
}
很多时候我们也 需要计算日期,比如预定酒店,2019年5月1号入住,3天后离店,所以,我们只需要对日期+3就可以得到离店时间。LocalDate类有一个plusDays(天数)用于执行天数的相加。例如
import java.time.LocalDate;
public class DateTest9 {
public static void main(String[] args) {
LocalDate leaveTime = getLeaveTime("2019-05-01", 4);
System.out.println(leaveTime.toString());
}
/**
* 根据入住时间和入住天数得到离店时间
*
* @param checkInTime
* @param days
* @return
*/
public static LocalDate getLeaveTime(String checkInTime, int days) {
// 把字符串转化为 LocalDate 类型
LocalDate time = LocalDate.parse(checkInTime);
// 使用 plusDays 添加天数,得到新的时间
LocalDate leaveTime = time.plusDays(days);
return leaveTime;
}
}
除了处理天数相加外,还可以处理其他的日期时间计算,我们整体看一下
import java.time.LocalDate;
public class DateTest10 {
public static void main(String[] args) {
LocalDate now = LocalDate.now();
System.out.println("当前:" + now.toString());
System.out.println("加法运算");
System.out.println("加1天:" + now.plusDays(1));
System.out.println("加1周:" + now.plusWeeks(1));
System.out.println("加1月:" + now.plusMonths(1));
System.out.println("加1年:" + now.plusYears(1));
System.out.println("减法运算");
System.out.println("减1天:" + now.minusDays(1));
System.out.println("减1周:" + now.minusWeeks(1));
System.out.println("减1月:" + now.minusMonths(1));
System.out.println("减1年:" + now.minusYears(1));
}
}
两个日期时间的判断,
import java.time.LocalDate;
public class DateTest11 {
public static void main(String[] args) {
LocalDate now = LocalDate.now();
// 可以对两个 LocalDate 进行比较,
// 可以判断一个日期是否在另一个日期之前或之后,
// 或者判断两个日期是否是同年同月同日。
boolean isBefore = now.minusDays(1).isBefore(LocalDate.now());
System.out.println("是否在当天之前:" + isBefore);
boolean isAfter = now.plusDays(1).isAfter(LocalDate.now());
System.out.println("是否在当天之后:" + isAfter);
// 判断是否是当天
boolean sameDate = now.isEqual(LocalDate.now());
System.out.println("是否在当天:" + sameDate);
}
}