本节课我学习的主要内容有:
1.新日期时间类与旧日期时间类的区别
2.新日期时间类
新日期时间类与旧日期时间类的区别:
过去版本日期时间API的局限性:
老版本的日期时间类是直接封装两部分内容:时间、日期。
封装的是一个距离1970年至今的毫秒数,应用不直观,不方便。
时间、日期数据操作起来相对繁琐、复杂。
它们不是线程安全的。
新版本日期时间API的局限性:
能够很好的区分处理计算机使用、人使用。
无缝支持老旧日期时间数据到新日期时间数据API的互相转换。
能够支持链式调用(但不推荐)。
新版本API不提供公共的构造方法来实例化日期、时间对象。而是通过
提供静态工程方法给日期、时间实例实例化。
格式标准:ISO-8601
完整日期时间格式: [date]T[time]
日期格式: year-month-day
时间格式: hour:minute:second
新日期时间类:
新日期API:
LocalDate类:日期类。
新时间API:
LocalTime类:时间类。
其他补充API:
LocalDateTime:日期时间类。
ZonedDateTime:日期时间时区类。
Test01类(测试新日期时间类的用法):
package LessonForLocalDateTime;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.ZonedDateTime;
public class Test01
{
public static void main(String[] args)
{
//用新的日期类
LocalDate date = LocalDate.now();
System.out.println(date);//会默认调用打印对象的toString方法。
System.out.println(date.getYear()+"-"+date.getMonthValue()+"-"+date.getDayOfMonth()+"-"+date.getDayOfWeek().getValue());
System.out.println(date.getYear()+"-"+date.getMonth()+"-"+date.getDayOfMonth()+"-"+date.getDayOfWeek());
//用新的时间类
LocalTime time = LocalTime.now();
System.out.println(time);//.xxx是默认输出的毫秒数。
System.out.println(time.getHour()+":"+time.getMinute()+":"+time.getSecond());
//新日期时间类
LocalDateTime dt = LocalDateTime.now();
System.out.println(dt);
//创建一个指定日期时间的对象
LocalDate date2 = LocalDate.of(2020, 11, 11);
LocalDate date3 = LocalDate.of(2020, Month.OCTOBER, 11);
LocalTime time2 = LocalTime.of(19, 29, 3);
System.out.println("指定日期:"+date2+" 指定时间:"+time2);
System.out.println("指定日期(用了枚举):"+date3+" 指定时间:"+time2);
ZonedDateTime adt = ZonedDateTime.now();
System.out.println(adt);
}
}
运行结果:
2020-11-10
2020-11-10-2
2020-NOVEMBER-10-TUESDAY
19:31:50.433
19:31:50
2020-11-10T19:31:50.433
指定日期:2020-11-11 指定时间:19:29:03
指定日期(用了枚举):2020-10-11 指定时间:19:29:03
2020-11-10T19:31:50.433+08:00[Asia/Shanghai]
本篇部分文字来源于:
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
在这里十分感谢老师能够给我带来学习的激情。
2020.11.10
本文章是本人学习笔记,不进行任何商用所以不支持转载请理解!也请别拿去商用!
如果觉得对你有帮助那么欢迎你随时来回顾!
只为记录本人学习历程。
毕