Java中的常用时间日期类总结(Date、DateFormat)

 更新时间:2024年08月19日 09:21:45   作者:Serendipity•  
在Java开发中处理时间和日期是相当常见的任务,无论是计算日期差异、格式化日期显示、解析日期字符串还是进行日期计算,都需要一些时间和日期处理的技巧,这篇文章主要给大家介绍了关于Java中常用时间日期类(Date、DateFormat)的相关资料,需要的朋友可以参考下

1. Date类

1.1 概述

计算机中时间原点:1970年1月1日00:00:00

时间换算单位:1秒 = 1000毫秒

Date代表了一个特定的时间,精确到毫秒

1.2 方法

构造方法:

演示代码:

//public Date()
Date d1 = new Date();
//pubic Date(long date)
long date = 1000*60*60
Date d2 = new Date(date);

常用方法:

演示代码:

//public long getTime()
Date d = new Date();
d.getTime();
//public void setTime(long time)
long time = System.currentTimeMillis();
d.setTime(time);

1.3 SimpleDateFormat类

概述:SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

构造方法:

常用方法:

格式化(从Date到String)

public final String format(Date date)//将日期格式化为时间字符串。

解析(从String到Date)

public Date parse(String source)//从给定的字符串开始解析文本为日期

2. LocaDateTime类

2.1 分类

LocaDate 表示日期(年月日)

LocalTime 表示时间(时分秒)

LOvalDateTime 表示时间+日期(年月日时分秒)

2.2 LocalDateTime创建方法

方法:

演示代码:

//public static LocalDateTime now();
LocalDateTime now = LocalDateTime.now();
//public static LocalDateTime of(年,月,日,时,分,秒)
LocalDateTime localDateTime = LocalDateTime.of(2000,11,11,,11,11,11);

2.3 LocalDateTime获取方法

方法说明:

2.4 LocalDateTime转换方法

方法说明:

2.5 LocalDateTime格式化和解析

方法说明:

演示代码:

//public String format(指定格式)
LocalDateTime localDateTime = LocalDateTimme.of(2020,12,12)
//public static DateTimeFormatter ofPattern(String pattern)
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String s = localDateTime.format(pattern);
//public LocalDateTime parse(解析字符串,解析格式)
String s = "2020年12月12日";
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime parse = LocalDateTime.parse(s,pattern);

2.6 LocalDateTime增加或减少时间方法

方法说明:

2.7 LocalDateTime减少或增加时间方法

方法说明:

2.8 LocalDateTime修改方法

说明方法:

3. Period和Duration

Period方法说明:

演示代码:

//public static Period between(开始时间,结束时间)  计算两个"时间"的间隔
LocalDate localDate1 = LocalDate.of(2020, 1, 1);
LocalDate localDate2 = LocalDate.of(2048, 12, 12);
Period period = Period.between(localDate1, localDate2);
System.out.println(period);//P28Y11M11D

//public int getYears()         获得这段时间的年数
System.out.println(period.getYears());//28
//public int getMonths()        获得此期间的月数
System.out.println(period.getMonths());//11
//public int getDays()          获得此期间的天数
System.out.println(period.getDays());//11

//public long toTotalMonths()   获取此期间的总月数
System.out.println(period.toTotalMonths());//347

Duration方法说明:

演示说明:

//public static Duration between(开始时间,结束时间)  计算两个“时间"的间隔

LocalDateTime localDateTime1 = LocalDateTime.of(2020, 1, 1, 13, 14, 15);
LocalDateTime localDateTime2 = LocalDateTime.of(2020, 1, 2, 11, 12, 13);
Duration duration = Duration.between(localDateTime1, localDateTime2);
System.out.println(duration);//PT21H57M58S
//public long toSeconds()	 获得此时间间隔的秒
System.out.println(duration.toSeconds());//79078
//public int toMillis()	     获得此时间间隔的毫秒
System.out.println(duration.toMillis());//79078000
//public int toNanos()       获得此时间间隔的纳秒
System.out.println(duration.toNanos());//79078000000000

4. 总结

LocalDate 和 Date 的区别:

java.util.Date是Java旧版的日期和时间类,而java.time.LocalDate是Java 8中引入的新日期API的一部分。

java.util.Date是可变的,并且不是线程安全的,而java.time.LocalDate是不可变的和线程安全的。

java.util.Date表示一个时间戳,同时包含日期和时间信息,而java.time.LocalDate仅表示日期信息,不包含时间。

java.util.Date中的方法大多已被废弃,而java.time.LocalDate提供了一组新的方法来操作日期,更符合现代编程习惯。

到此这篇关于Java中常用时间日期类(Date、DateFormat)的文章就介绍到这了,更多相关Java时间日期类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java HashMap详解及实现原理

    Java HashMap详解及实现原理

    Java HashMap是Java集合框架中最常用的实现Map接口的数据结构,它使用哈希表实现,允许null作为键和值,可以存储不同类型的键值对,在Java中,HashMap被广泛应用于各种场景,如缓存、数据库连接池、路由器等,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • Springmvc返回html页面问题如何解决

    Springmvc返回html页面问题如何解决

    这篇文章主要介绍了Springmvc返回html页面问题如何解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • MybatisPlus中插入数据后获取该对象主键值的实现

    MybatisPlus中插入数据后获取该对象主键值的实现

    这篇文章主要介绍了MybatisPlus中插入数据后获取该对象主键值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • IDEA2020.3.2版本自动注释类和方法注释模板配置步骤详解

    IDEA2020.3.2版本自动注释类和方法注释模板配置步骤详解

    这篇文章主要介绍了IDEA2020.3.2版本自动注释类和方法注释模板配置步骤,本文给大家分享了我自己创建过程通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Mybatis千万级数据查询的解决方式,避免OOM问题

    Mybatis千万级数据查询的解决方式,避免OOM问题

    这篇文章主要介绍了Mybatis千万级数据查询的解决方式,避免OOM问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Springboot 配置SqlSessionFactory方式

    Springboot 配置SqlSessionFactory方式

    这篇文章主要介绍了Springboot 配置SqlSessionFactory方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java实现ArrayList排序的方法详解

    Java实现ArrayList排序的方法详解

    Java中常见的ArrayList排序方法主要为三种:JDK8的stream、Comparator#compare()和Comparable#compareTo(),本文将详解这三者的使用,需要的可以参考一下
    2022-05-05
  • POS机如何与Java交互的方式探讨

    POS机如何与Java交互的方式探讨

    本文深入探讨POS机与Java语言的交互机制,详细介绍了通过RESTfulAPI、Socket编程和消息队列等方式实现数据交换和功能调用,文章还包含了代码示例、状态图与关系图,帮助开发者理解和实现POS机与Java之间的高效交互
    2024-09-09
  • java哈夫曼树实例代码

    java哈夫曼树实例代码

    这篇文章主要为大家介绍了java哈夫曼树实例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Java8如何使用Lambda表达式简化代码详解

    Java8如何使用Lambda表达式简化代码详解

    这篇文章主要给大家介绍了关于Java8如何使用Lambda表达式简化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论