Java12都要出来了,你还在使用Date操作日期吗?
时间:2022-06-21
本文章向大家介绍Java12都要出来了,你还在使用Date操作日期吗?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Python基于yaml文件配置logging日志过程解析
- Python ckeditor富文本编辑器代码实例解析
- PHP自定义错误处理的方法分析
- PHP聊天室简单实现方法详解
- phpStorm+XDebug+chrome 配置详解
- PHP面向对象程序设计之多态性的应用示例
- PHP设计模式之单例模式定义与用法分析
- PHP面向对象程序设计之接口的继承定义与用法详解
- PHP简单验证码功能机制实例详解
- php高清晰度无损图片压缩功能的实现代码
- Python自省及反射原理实例详解
- 浅谈django框架集成swagger以及自定义参数问题
- keras CNN卷积核可视化,热度图教程
- 解决tensorflow读取本地MNITS_data失败的原因
- 浅谈keras中Dropout在预测过程中是否仍要起作用