时间类 java_java 之 时间类总结

1、java.util.Date

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。

Date()使用当前日期和时间来初始化对象。

Date(long millisec),该参数是从1970年1月1日起的毫秒数.

获取当前日期时间

public classDataTest {public static voidmain(String[] args) {

Date date= newDate();

System.out.println(date);//Tue Jul 07 22:54:59 CST 2020

System.out.println(date.getTime());//1594133756181

System.out.println(new Date(System.currentTimeMillis()));//Tue Jul 07 23:35:25 CST 2020

}

}

Date类常用方法

8897439e2338c08b9005fa15091d3cfc.png

2、java.sql.Date

包含年月日、对应sql中的DATE类型。是java.util.Date的子类但是只有一个构造函数。

Date(long millisec),该参数是从1970年1月1日起的毫秒数.

获取当前时间

public classSqlDate {public static voidmain(String[] args) {

Date date= newDate(System.currentTimeMillis());

System.out.println(date);

System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date));//2020-07-07//2020-07-07 11:41:59

}

}

3、java.sql.Time

包含时分秒为,对应SQL中TIME类型。与java.sql.Date一样有一个有参构造函数。

Time(long millisec),该参数是从1970年1月1日起的毫秒数.

获取当前日期时间

public classSqlDate {public static voidmain(String[] args) {

Time time= newTime(System.currentTimeMillis());

System.out.println(time);

System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(time));//23:53:51//2020-07-07 11:53:51

}

}

4、java.sql.Timestamp

时间戳,对应SQL中的TIMESTAMP类型,精确到纳秒级别。

Timestamp(long millisec),该参数是从1970年1月1日起的毫秒数.

获取当前日期时间

public classSqlDate {public static voidmain(String[] args) {

Timestamp timestamp=newTimestamp(System.currentTimeMillis());

System.out.println(timestamp);

System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(timestamp));//2020-07-07 23:58:04.907//2020-07-07 11:58:04

}

}

5、java.text.SimpleDateFormat

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

将时间字符串转化为Date再格式化

public classDateFormatTest {public static void main(String[] args) throwsParseException {

SimpleDateFormat sdf= new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");

Date date= sdf.parse("2020年05月20日 13:14:58");

System.out.println(date);

System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date));//Wed May 20 13:14:58 CST 2020//2020-05-20 01:14:58

}

}

日期和时间格式化编码

b951a027605d4c3d48a024721bb4ae28.png

6、java.util.Calendar

日历类,大多用来获取时间的特殊属性,比如年份,月份,星期几。

Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

jdk1.8新增了创建方法。

public classCalendarTest {public static voidmain(String[] args) {//获取当前时间的Calendar对象,可以通过set方法来设置时间

Calendar calendar =Calendar.getInstance();

System.out.println(calendar.getTime());//JDK1.8 创建一个指定日期的Calendar对象

Calendar calendar1 = new Calendar.Builder().setDate(2020,05,20).build();

System.out.println(calendar1.getTime());

System.out.println(calendar1.get(Calendar.YEAR));

System.out.println(calendar1.get(Calendar.MONTH));

System.out.println(calendar1.get(Calendar.DATE));

System.out.println(calendar1.get(Calendar.HOUR_OF_DAY));

System.out.println(calendar1.get(Calendar.MINUTE));

System.out.println(calendar1.get(Calendar.SECOND));

System.out.println(calendar1.get(Calendar.DAY_OF_WEEK));//Wed Jul 08 00:29:17 CST 2020//Sat Jun 20 00:00:00 CST 2020//2020//5//20//0//0//0//7

}

}

Calendar类对象字段类型

e747079f075ea903ef4b3158c69a6283.png

7、java.util.GregorianCalendar

Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。

Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。

GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代.。

构造方法

cf6200b17d99dbab269bc63c91d0b8b1.png

常用方法

2aaea32310b0a4a7a87d3ed4cf49db69.png

49143b9c2971ba7f6182e89c67b6b47e.png

java8开始有的新的操作时间的类

8、java.time.LocalDate

LocalDate提供年月日而不提供时分秒信息,它是不可变类且线程安全的。它经常被用于展示year-month-day,day-of-year,day-of-week,week-of-year等格式的信息。

public classLocalDates {public static voidmain(String[] args) {

LocalDate ld=LocalDate.now();//获取当前时间对象

System.out.println(ld);

System.out.println(ld.getYear());//那一年

System.out.println(ld.getMonth());//那个月

System.out.println(ld.getDayOfMonth());//几号

System.out.println(ld.getDayOfWeek());//周几

System.out.println(ld.getDayOfYear());//一年中第多少天

System.out.println(ld.isLeapYear());//是否闰年//2020-07-08//2020//JULY//8//WEDNESDAY//190//true

}

}

9、java.time.Time

提供时分秒不提供年月日,也是线程安全并且不可变类。它经常被用于展示hour-minute-second格式的信息。可以对时间进行加减等操作。

public classLocalTimeTest {public static voidmain(String[] args) {

LocalTime localTime= LocalTime.now();//获取当前时间

System.out.println(localTime);int hour = localTime.getHour();//获取小时

System.out.println(hour);

LocalTime addTwoHours= localTime.plusHours(2l);//增加2小时

System.out.println(addTwoHours);

LocalTime reduceTOneHour= localTime.minusHours(1L);//减少2小时

System.out.println(reduceTOneHour);//01:05:20.498//1//03:05:20.498//00:05:20.498

}

}

10、java.time.LocalDateTime

包含年月日时分秒,精确到纳秒级别,同样是线程安全并且不可变类。它可以操作时间中的年月日时分秒并且可以获取其中的属性。

public classLocalDateTimeTest {public static voidmain(String[] args) {

LocalDateTime localDateTime=LocalDateTime.now();

System.out.println(localDateTime);//LocalDateTime 和 LocalDate, LocalTime 相互转换

LocalDate localDate =localDateTime.toLocalDate();

System.out.println(localDate);

LocalTime localTime=localDateTime.toLocalTime();

System.out.println(localTime);

// 2020-07-08T01:13:36.274

// 2020-07-08

// 01:13:36.274

}

}

11、java.time.Instant

时间戳,就包含年月日时分秒,精确到纳秒级别,同样是线程安全并且不可变类。

public classInstantTest {public static voidmain(String[] args) {

Instant instant=Instant.now();

System.out.println(instant);//2020-07-07T17:16:23.233Z

}

}

12、java.time.Duration

时间段,同样是线程安全并且不可变类。

public classDurationTest {public static voidmain(String[] args) {

Duration duration= Duration.between(LocalTime.of(10,14,59), LocalTime.of(13,14,59));long toDays =duration.toDays();long toHours =duration.toHours();

System.out.println(toDays);

System.out.println(toHours);

// 0

// 3

} }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值