美文网首页
Java12都要出来了,你还在使用Date操作日期吗?

Java12都要出来了,你还在使用Date操作日期吗?

作者: 我的小熊不见了 | 来源:发表于2019-03-03 19:54 被阅读439次

Java12都要出来了,你还在使用Date操作日期吗?

如果你想要用Date表示Java8的发布日期(2014年3月18日),需要创建这样的Date实例:

Date date = new Date(114, 2, 18);

要是我不告诉你这表示的是2014年3月你是不是还以为这是114年2月。

另外,对于时间的格式化类DatteForm类不是线程安全的,也就是说如果两个线程尝试使用同一个formatter解析日期,你可能会得到无法预期的结果。

使用LocalDate和LocalTime

LocalDate

该类的实例是一个不可变对象,只提供简单的日期,不含当天的时间信息,不附带任何与时区相关的信息。

以下是它的使用方法:

LocalDate date = LocalDate.of(2014, 3, 18);// 2014-03-18
int yeat = date.getYear();// 2014
Month month = date.getMonth();// MARCH
int day = date.getDayOfMonth();// 18
DayOfWeek dow = date.getDayOfWeek();// TUESDAY
int len = date.getlengthOfMonth();// 31
boolean leap = date.isLeapYear();// false

这个api跟我们正常的思维很相近,一眼就能看出来这表示的是哪一天。

另外获取当前日期的方法:

LocalDate date = LocalDate.now();

使用统一的get()方法:

int year = date.get(ChronoField.year);
int month = date.get(ChronoField.MONTH_OF_YEAR);
int day = date.get(ChronoField.DAY_OF_MONTH);

LocalTime

表示一天中的时间,可以使用LocalTime

LocalTime time = LocalTime.of(13, 45, 20);// 12:45:20
int hour = time.getHour();// 13
int minute = time.getMinute();// 45
int second = time.getSecond();// 20

使用字符串创建LocalDate和LocalTime

使用parse方法:

LocalDate date = LocalDate.parse("2014-03-18");
LocalTime time = LocalTime.parse("13:45:20");

这个创建方法是不是怎么看怎么顺眼。

合并日期和时间LocalDateTime

LocalDateTime是LocalDate和LocalTime的合体,同时表示了日期和时间,但是不带有时区信息。

// 2014-03-18T13:45:20
LocalDateTime dt1 = LocalDateTime.of(2014, Month.MARCH, 18, 13, 45, 20);
LocalDateTime dt2 = LocalDateTime.of(date, time);
LocalDateTime dt3 = date.atTime(13, 45, 20);
LocalDateTime dt3 = time.atDate(date);

相互转换:

LocalDate date1 = dt1.toLocalDate();
LocalTime time1 = dt1.toLocalTime();

操纵、解析和格式化日期

以比较直观的方式操纵LocalDate的属性:

LocalDate date1 = LocalDate.of(2014, 3, 18);// 2014-03-18
LocalDate date2 = date1.withTear(2011);// 2011-03-18
LocalDate date3 = date2.withDayOfMonth(25);// 2011-03-25
LocalDate date4 = date3.with(ChronoField.MONTH_OF_TEAR, 9)// 2011-09-25

以相对方式修改LocalDate的属性:

LocalDate date1 = LocalDate.of(2014, 3, 18);// 2014-03-18
LocalDate date2 = date1.plusWeeks(1);//  2014-03-25
LocalDate date3 = date2.minusYears(3);// 2011-03-25
LocalDate date4 = date3.plus(6, ChronoUnit.MONTHS);)// 2011-09-25

相关文章

  • Java12都要出来了,你还在使用Date操作日期吗?

    Java12都要出来了,你还在使用Date操作日期吗? 如果你想要用Date表示Java8的发布日期(2014年3...

  • spring boot2实现Json全局时间格式化

    现在都正式发布Java12了,Java8的语法可以使用了,日期不要再使用java.util.Date,请使用Loc...

  • Date、Error

    一、Date 什么是Date?封装日期和时间,提供操作日期和时间的API。何时使用日期对象?今后只要存储日期和时间...

  • Date 类型

    创建一个日期对象 使用 new 操作符和 Date 构造函数即可;var now = new Date(); 要为...

  • Date对象

    1. 介绍:阐述 Date 对象。 Date对象,是操作日期和时间的对象。Date对象对日期和时间的操作只能通过方...

  • JS标准库系列(五)—— Date对象

    一、Date作为工具函数 Date对象是JS提供的日期和时间的操作接口。Date对象作为工具函数直接使用,不管有没...

  • Date类型

    要创建一个日期对象,使用new操作符和Date构造函数即可,如下所示: const now = new Date(...

  • JS Date

    Date对象是JS提供的日期和时间操作接口。 静态方法 Date.now() Date.parse() 解析日期的...

  • 学Java(List集合)

    2.1、日期操作 Date,结合SimpleDateFormat类。 Calendar类。 2.1.1 Date类...

  • js笔记十八之Date日期

    Date日期操作基础讲解 Date是日期类,通过它可以对时间进行处理

网友评论

      本文标题:Java12都要出来了,你还在使用Date操作日期吗?

      本文链接:https://www.haomeiwen.com/subject/gdtvyqtx.html