Java中的常用时间日期类总结(Date、DateFormat)
作者: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时间日期类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!