三代日期类的基本使用
三代日期类的基本使用
文章目录
- 三代日期类的基本使用
- 一、第一代日期类Date
- 二、第二代的日期类Calendar
- 二、第三代的日期类LocalDateTime
- 总结
一、第一代日期类Date
Date 日期类是在java.util 包中的。
Date日期类 调用它的无参构造器 返回当前系统的时间 如下:
Date date = new Date(); //返回当前系统的时间 具体格式 是国外的格式
System.out.println(date);//输出如下
Sun Jul 10 23:31:16 CST 2022
还有与Date类 配套使用的格式转换类 SimpleDateFormat类 该类可以格式化日期 转化成一个字符串的格式。 在指定格式时所使用的字母有具体的规定,可在JDK API 中查找,如图。
Date date = new Date(); //返回当前系统的时间 具体格式 时国外的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 kk:mm:ss E");
String format = sdf.format(date); //将日期转换成指定格式的字符串
System.out.println(format);//输出如下
2022年07月10日 23:35:33 星期日
在SimpleDateFormat类中 还提供了将字符串 转化为Date日期的方法
//SimpleDateformat 类中还有方法可以将一个字符串转化成一个Data日期
//当格式 必须是new SimpleDateformat 时的格式否则会由抛出转化异常
String s = "2000年12月29日 23:13:49 星期二"; //这里字符串的格式必须要是自己设定的格式
Date parse = sdf.parse(s); //这里会 产生ParseException的编译异常可以捕获 或是抛出异常
System.out.println(sdf.format(parse));//转化后的Data默认为的时间还是国外,可以进行格式化
//输入如下
2000年12月29日 23:13:49 星期五
二、第二代的日期类Calendar
Calendar日期类时一个抽象类,它的构造器protected意味着我们不能通过 new 获得一个Calendar对象,所以我们想要获得一个Calendar具体如下:
Calendar instance = Calendar.getInstance();//因为Calendar的构造器是protected 我们无法去new//获得对象 所以Calendar类中提供了方法 去获得它的一个实例System.out.println(instance);//输出发现并没有获得当前用户的时间 而是这个实例的引用.
Calenadar 通过特定的常量字段 来获取特定瞬间的时间.
//因为Calendar类中没有 格式化的类只有靠自身定义的常量字段 手动去格式化时间 比较的灵活
System.out.println(instance.get(Calendar.YEAR) + "年");
System.out.println(instance.get(Calendar.MONTH) + 1 + "月");//月份从0开始记数所以要加1
System.out.println(instance.get(Calendar.DAY_OF_MONTH) + "日");
System.out.println(instance.get(Calendar.HOUR_OF_DAY) + "时");
System.out.println(instance.get(Calendar.MINUTE) + "分");
System.out.println(instance.get(Calendar.SECOND) + "秒");
//输出如下
2022年
7月
11日
0时
25分
42秒
具体格式标准可以通过字符串的拼接来表示.
二、第三代的日期类LocalDateTime
因为Date,Calendar日期类有着各种的不足,在 jdk8 加入了第三代日期类LocalDateTime
LocalDateTime类中的构造器是 private 意味着也无法通过new 获得日期对象,所以其提供了
now()方法 返回当前用户日期对象.
LocalDateTime now = LocalDateTime.now();//构造器为private 通过方法获得时间对象
System.out.println(now);//输出如下
2022-07-11T01:00:33.297
LocalDateTime有一个 配对的格式化类 DateTimeFormatter
//第三代日期有格式化类DateTimeFormatter 通过方法返回格式化对象
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss E");
System.out.println(dtf.format(now));//格式化输出如下
2022-07-11 01:02:26 星期一
注意:格式化中字符串中的字符是规定的, 可在Jdk APi(1.8或以后的版本) 中的 DateTimeFormatter中查看。
LocalDateTime中也有方法 可以获得单个具体的时间
//第三代日期类中可以通过getXxx()方法 获取具体的时间段
System.out.println(now.getYear());//年
System.out.println(now.getMonth());//月
System.out.println(now.getDayOfMonth());//日
System.out.println(now.getHour());//时
System.out.println(now.getMinute());//分
System.out.println(now.getSecond());//秒
在LocalDateTime中还可以 获取现在时间加上或减去一段时间后的时间
//LocalDateTime 通过plusXxx() 或是minusXxx()
//以现在用户的时间 加上/减去 一段时间后的时间
System.out.println("30天后: " + dtf.format(now.plusDays(30)));//30天后
System.out.println("16月前: " + dtf.format(now.minusMonths(16)));// 16月前
//输出如下
30天后: 2022-08-10 01:11:15 星期三
16月前: 2021-03-11 01:11:15 星期四
第三代日期类中还有许多实用的方法,具体使用可自行探索.
总结
在Date 的大多数方法 在JDK1.1 引入后Calendar 就被弃用了其本身也存在在一些问题如线程不安全,没有格式化等。现如今Date也使用得很少,如需获取时间,最好使用第三代日期类LocalDateTime获取。
三代日期类的基本使用相关推荐
- date日期相减 java_03时间日期类
Java8 在 java.time 包中增加了时间日期相关的API,弥补了 Java8 以前对日期.时间处理的不足. 在介绍Java8新的时间日期API前,先看看 java8 以前我们操作日期时间常用 ...
- string日期格式化_java面向对象---日期类
10.日期类 (1)Date Date代表了一个特定的时间,精确到毫秒 方法名 说明 Public Date() 分配一个Date对象并将其初始化,以便它代表它被分配的时间,精确到毫秒. Public ...
- 日期类对象与整数之间的加法运算
日期类对象与整数之间的加法运算 采用友元函数形式, 定义两个友元函数
- 蓝桥杯日期计算java_日期类的使用(java)-蓝桥杯
蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...
- java日期类的计算问题_java日期计算(Calendar类)
昨天学了java日期的格式器,主要是用SimpleDateFormat进行格式化.解析.但这还仅停留在日期的查看(调整显示格式)阶段,更重要的是日期的操作.今天继续学习,记录如下: 今天主要学习的日期 ...
- java 8时间操作_Java8 时间日期类操作
Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全 ...
- java当中日期类的相关操作(学习笔记)
一:引言 Calendar类是日历类,提供操作日历字段的方法,其中有常用操作 get 和 set 方法还有 add方法 详细用法请看码 二:上码 package cn.wyj.one;import j ...
- java中的常用日期类_Java中的常用日期类说明
日期类常用的有三个,Date类,Calendar(日历)类和日期格式转换类(DateFormat) Date类中的大部分的方法都已经过时,一般只会用到构造方法取得系统当前的时间.public clas ...
- 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯
蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...
最新文章
- cmake 学习笔记(三) (转)
- TP的门面Facade:静态方式调用方法
- Java中expecial,RxJava 学习笔记 (一)
- orm的理解_ORM仇恨者无法理解
- 迈入JavaWeb第一步,Java网络编程基础,TCP网络编程URL网络编程等
- macOS Big Sur应用图标替换教程︳big sur图标包
- 软件开发报价模板_模板类app开发价格是多少钱?
- Nexus 安装与配置
- JNI_OnLoad
- 代码从stepping stone搬移到内存
- Linux lpadmin 命令 增加usb打印机
- 「公众号吸粉神级插件」实现网站下载文件需要公众号获取验证码
- mysql中xs表示什么_xs代表什么意思
- (转)42个超实用的Google Chrome 插件,值得你拥有,建议收藏!
- 微信小程序自定义生成动态分享内容
- 计算机机械硬盘寿命,机械硬盘的寿命
- 阿里云服务器1核1G1M能放多少个网站 跑多少流量
- create view 和 create or replace view的区别
- FastJson的JSON.isValid()出现BUG!
- python筛选股票5日线以上_[python]沪深龙虎榜数据进一步处理,计算日后5日的涨跌幅...