首页 > 技术文章 > java8的日期处理

momoli 2020-10-26 10:51 原文

关键类

Instant:瞬时实例。
LocalDate:本地日期,不包含具体时间 例如:2014-01-14 可以用来记录生日、纪念日、加盟日等。
LocalTime:本地时间,不包含日期。
LocalDateTime:组合了日期和时间,但不包含时差和时区信息。
ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class Java8DateTimeDemo {
	public static void main(String[] args) {
		System.out.println("# LocalDate 日期演示");
		dateDemo();
		System.out.println("# LocalTime 时间演示");
		timeDemo();
		System.out.println("# LocalDateTime 日期时间演示");
		datetimeDemo();
		System.out.println("# LocalDateTime 日期时间与字符串转换演示");
		formatDemo();
	}

	// 日期演示
	public static void dateDemo() {

		// 获取当前日期
		LocalDate localDate = LocalDate.now();
		System.out.println("localDate:" + localDate);
		// 创建指定日期 注意月份是从1开始
		LocalDate myDate = LocalDate.of(2019, 6, 26);
		System.out.println("myDate:" + myDate);
		// 获取日期详情
		System.out.println(myDate.getYear() + "-" + myDate.getMonthValue() + "-" + myDate.getDayOfMonth());
		// 日期比较
		System.out.println("是否相等:" + localDate.equals(myDate));
		System.out.println("是否晚于:" + localDate.isAfter(myDate));
		System.out.println("比较:" + localDate.compareTo(myDate));
		// 日期加减计算
		LocalDate newDate = localDate.plus(1, ChronoUnit.DAYS);
		System.out.println("newDate:" + newDate);
	}

	// 时间演示
	public static void timeDemo() {
		// 获取当前时间
		LocalTime localTime = LocalTime.now();
		System.out.println("localTime:" + localTime);
		// 创建指定时间
		LocalTime myTime = LocalTime.of(10, 10, 10);
		System.out.println("myTime:" + myTime);
		// 获取时间详情
		System.out.println(myTime.getHour() + ":" + myTime.getMinute() + ":" + myTime.getSecond());
		// 时间比较
		System.out.println("是否相等:" + localTime.equals(myTime));
		System.out.println("是否晚于:" + localTime.isAfter(myTime));
		System.out.println("比较:" + localTime.compareTo(myTime));
		// 时间加减计算
		LocalTime newTime = localTime.plus(1, ChronoUnit.HOURS);
		System.out.println("newTime:" + newTime);
	}

	// 日期时间演示
	public static void datetimeDemo() {
		// 获取当前日期时间
		LocalDateTime now = LocalDateTime.now();
		System.out.println("now:" + now);
		// 创建指定日期时间
		LocalDateTime my = LocalDateTime.of(2019, 7, 6, 10, 10, 10);
		System.out.println("my:" + my);
		// 获取日期时间详情
		System.out.println(my.getYear() + "-" + my.getMonthValue() + "-" + my.getDayOfMonth());
		System.out.println(my.getHour() + ":" + my.getMinute() + ":" + my.getSecond());
		// 日期时间比较
		System.out.println("是否相等:" + now.equals(my));
		System.out.println("是否晚于:" + now.isAfter(my));
		System.out.println("比较:" + now.compareTo(my));
		// 日期时间加减计算
		LocalDateTime newDateTime = now.plus(1, ChronoUnit.YEARS);
		System.out.println("newDateTime:" + newDateTime);
	}

	// 格式化压实
	public static void formatDemo() {
		//格式化样式类
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		// 日期时间转字符串
		LocalDateTime now = LocalDateTime.now();
		String nowStr = now.format(formatter);
		System.out.println("nowStr:" + nowStr);
		// 字符串转日期时间
		String datetimeStr = "2019-07-06 10:10:10";
		LocalDateTime datetime = LocalDateTime.parse(datetimeStr, formatter);
		System.out.println("datetime:"+datetime);
	}

}

推荐阅读