日期和时间的API
创始人
2024-05-02 18:42:27

一、JDK8之前的日期和时间的API

1.System类中的currentTimeMillis()

返回当前时间与1970年1月1日0分0秒之间以毫秒为单位的时间差,称为时间戳

2.Java.util.Date类 |---java.sql.Date类

1.两个构造器的使用

>构造器一: Date(): 创建一个对应当前时间的Date对象

>构造器二:创建指定毫秒数的Date对象

 2.两个方法的使用

>toString(): 显示当前的年、月、日、时、分、秒

> getTime(): 获取当前Date对象对应的毫秒数(时间戳)

 3.java.sql.Date对应着数据库中的日期类型的变量

>如何实例化

>如何将java.util.Date对象转换为java.sql.Date对象

 

 3.SimpleDateFormat的使用: simpleDateFormat对日期Date类的格式化和解析

 1.两个操作:

>格式化:日期 --->字符串

>解析:格式化的逆过程,字符串 ---> 日期

 

 4.Calendar日历类(抽象类)的使用

1.实例化

方式一:创建其子类 (GregorianCalendar) 的对象

方式二:调用其静态方法getInstance()

Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getClass());

 2.常用方法

getTime(): 日历类---> Date

Date date = calendar.getTime();

System.out.println(date);

setTime():Date ---> 日历类

Date date1 = new Date();

calendar.setTime(date1);

days = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(days);

 

 二、JDK8中的日期和时间的API

 1.出现的背景

 

 2.LocalDate、LocalTime、LocalDateTime 的使用:

1.LocaLDateTime相较FLocalDate、LocalTime,使用频率要高

2.类似于Calendar

//now(): 获取当的日期、时间、日期+时间
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();//of(): 设置指定的年、月、日、时、分、秒。没有偏移量
LocalDateTime localDateTime1 = LocalDateTime.of( year: 2020, month: 10, dayOfMonth: 22)
System.out.println(localDateTime1);//getXxx(): 获取相关的属性
System.out.printIn(localDateTime.getDayofMonth());
System.out.printIn(localDateTime.getDayofWeek());
System.out.printIn(localDateTime.getMonth());
System.out.printIn(localDateTime.getMonthValue());
System.out.println(localDateTime.getMinute());//体现不可变性
//withXxx(): 设置相关的属性
LocalDate localDate1 = localDate.withDayofMonth(22);
System.out.printIn(localDate);
System.out.println(localDate1);LocalDateTime localDateTime2 = localDateTime.withHour(4);
System.out.printIn(localDateTime);
System.out.printIn(localDateTime2);
//不可变性
LocalDateTime localDateTime3 = locaDateTime.plusMonths(3);
System.out.println(localDateTime);
System.out.println(localDateTime3);

3.Instant类的使用

Instant: 时间线上的一个瞬时点。 这可能被用来记录应用程序中的事件时间戳。

类似于Java.Util.Date类

//now(): 获取本初子午线对应的标准时间
Instant instant = Instant .now();
System.out.println(instant);//2019-02-18T7:29:41.719Z//添加时间的偏移量
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
System,out.println(offsetDateTime);//2019-02-18T15:32:50.611+08:00//toEpochMilli(): 获取自197年1月1时分秒(UTC)开始的毫秒数---> Date类的getTime
long milli = instant.toEpochMilli();
System.out.println(milli);//ofEpochMilLi():通过给定的毫秒数,获取Instant实例 -->Date(Long millis)
Instant instant1 = Instant.ofEpochMilli(1550475314878L);
System.out.println(instant1);

 4.DateTimeFormatter的使用:格式化或解析日期、时间

重点: 方式三:自定义的格式。如: ofPattern(“yyyy-MM-dd hh:mm:ss”)
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")
//格式化
String str4 = formatter3.format(LocalDateTime.now());
System.out.println(str4);//2919-02-18 3:52:09

5.其他日期API

 

 

 

 

 三、与传统日期处理API的转换

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...