Java8日期时间用法

Posted 真空零点能

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java8日期时间用法相关的知识,希望对你有一定的参考价值。

java.util.Date和java.util.Calendar易用性差,不支持时区,不是线程安全的。Java8增加了新的日期和时间类:LocalDate、LocalTime、Instant、Duration 以及 Period,这些类都包含在 java.time包中。新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。

Java8提供的日期时间类

  • LocalDate 日期,格式为:yyyy-MM-dd
  • LocalTime 时间,格式为:HH:mm:ss SSS
  • LocalDateTime 日期时间,格式为:yyyy-MM-ddTHH:mm:ss SSS ,是前2者的结合
  • Instant   时间戳
  • Duration  持续时间,时间差
  • Period    时间段
  • ZoneOffset    时区偏移量,比如:+8:00
  • ZonedDateTime    带时区的时间
  • Clock    时钟,比如获取目前美国纽约的时间
  • java.time.format.DateTimeFormatter    时间格式化

参考示例

public static void test1()
	//日期
	LocalDate localDate = LocalDate.now(); 
	System.out.println(localDate);
	System.out.println(localDate.plusDays(1)); //+1天
	System.out.println(localDate.minusDays(1)); //-1天
	String currDate=DateTimeFormatter.ofPattern("yyyy-MM-dd").format(localDate);
	System.out.println(currDate);
	
	//时间
	LocalTime localTime = LocalTime.now(); //当前 日期时间
	System.out.println(localTime.getHour()); //当前 小时
	System.out.println(localTime.plusHours(1)); //+1小时
	
	//日期+时间
	LocalDateTime localDateTime = LocalDateTime.now();
	System.out.println(localDateTime);
	
	//自定义日期
	LocalDate date = LocalDate.of(2018,2,6);
	System.out.println("自定义日期:"+date);
	
	//判断日期是否相等
	LocalDate date1 = LocalDate.now();
	LocalDate date2 = LocalDate.of(2018,2,5);
	if(date1.equals(date2))
		System.out.println("时间相等");
	else
		System.out.println("时间不等");
	
	
	//计算一周后日期
	LocalDate today = LocalDate.now();
	System.out.println("今天的日期为:"+today);
	LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);
	System.out.println("一周后的日期为:"+nextWeek);
	
	//判断日期范围
	LocalDate tomorrow = LocalDate.of(2018,2,6);
	if(tomorrow.isAfter(today))
		System.out.println("之后的日期:"+tomorrow);
	
	LocalDate yesterday = today.minus(1, ChronoUnit.DAYS);
	if(yesterday.isBefore(today))
		System.out.println("之前的日期:"+yesterday);
	
	
	//日期格式化
	String dayAfterTommorrow = "20180205";
	LocalDate formatted = LocalDate.parse(dayAfterTommorrow,DateTimeFormatter.BASIC_ISO_DATE);
	System.out.println(dayAfterTommorrow+"  格式化后的日期为:  "+formatted);

	//字符串、日期 互转
	LocalDateTime dateTime1 = LocalDateTime.now();
	DateTimeFormatter format1 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
	//日期转字符串
	String str = dateTime1.format(format1);
	System.out.println("日期转换为字符串:"+str);

	DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
	//字符串转日期
	LocalDate dateTime2 = LocalDate.parse(str,format2);
	System.out.println("日期类型:"+dateTime2);
	

https://blog.oxings.com/article/42.html

 

以上是关于Java8日期时间用法的主要内容,如果未能解决你的问题,请参考以下文章

中国公民去美国纽约

Java8日期时间用法

美国比我们中国时间差多少?比如说现在晚上8点美国现在几点?是比晚上8点晚还是早?

纽瓦克到纽约有多少路程

美国现在时间是几点几分几秒?

纽约比加州时间早3个小时