LocalDate、LocalTime、LocalTimeDate用法及计算时间差

java8新增了LocalDate、LocalTime、LocalTimeDate等,相比于之前的Date,新的类是线程安全的。
整理了一下各个场景下的用法,上代码:

package dateTest;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;

public class DateTest {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();
        System.out.println("获取当前日期==" + localDate);
        System.out.println("获取月份==" + localDate.getMonthValue());
        System.out.println("获取月份==" + localDate.getMonth());
        System.out.println("获取年==" + localDate.getYear());
        System.out.println("获取日==" + localDate.getDayOfMonth());
        System.out.println("获取周==" + localDate.get(ChronoField.DAY_OF_WEEK));
        System.out.println("获取周==" + localDate.getDayOfWeek());
        
        LocalTime localTime = LocalTime.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        String time = dateTimeFormatter.format(localTime);
        System.out.println("获取时分秒==" + localTime);
        System.out.println("获取时分秒==" + time);
        
        LocalDateTime localDateTime = LocalDateTime.now();
        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String createTime = dateTimeFormatter1.format(localDateTime);
        System.out.println("获取年月日时分秒==" + createTime);
        
        LocalDateTime dateTime = LocalDateTime.of(localDate, localTime);
        System.out.println("获取年月日时分秒==" + dateTimeFormatter1.format(dateTime));
        
        LocalDateTime dateTime2 = LocalDateTime.parse("2020-05-20 20:20:20", dateTimeFormatter1);
        System.out.println("字符串转换locaDateTime==" + dateTime2);
        
        //计算时间差
        Duration duration = Duration.between(dateTime2,  localDateTime );
        System.out.println("相差天数==" + duration.toDays());
        System.out.println("相差毫秒数==" + duration.toMillis());
        System.out.println("相差分钟数==" + duration.toMinutes());
        System.out.println("相差小时数==" + duration.toHours());
        System.out.println("相差纳秒数==" + duration.toNanos());
        
        //月份时间差
        LocalDate start = LocalDate.parse("2020-01-28");
        LocalDate end = LocalDate.parse("2020-06-03");
        long year = start.until(end, ChronoUnit.YEARS);
        long month = start.until(end, ChronoUnit.MONTHS);
        long days = start.until(end, ChronoUnit.DAYS);
        System.out.println("间隔:" + year + "年");
        System.out.println("间隔:" + month + "月");
        System.out.println("间隔:" + days + "天");
        
    }
    
    
    
}

运行结果如下图:


LocalDateconsole结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 给自己总结一个所有JAVA版本更新的核心内容总结: JAVA 8 JAVA 8在java更新的历史中是一个非常重要...
    暴走的狐狸阅读 410评论 0 0
  • 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升...
    timothyue1阅读 379评论 0 1
  • 相较于 Date的优势: java.util.Date 和 SimpleDateFormatter 都不是线程安全...
    HungerDeng阅读 5,640评论 1 3
  • 新特性总览 lambda表达式 Stream操作数组 Optional取代null 简洁的并发编程 LocalDa...
    androidjp阅读 2,736评论 0 6
  • 目录: 什么是时间?这是一个物理概念和哲学问题。物理学认为时间是一种尺度,一个标量,借着时间,事件发生之先后可以按...
    Wayne566阅读 513评论 0 1

友情链接更多精彩内容