Java高级编程--JDK8之前日期时间API
在开发过程中我们常常会碰到要处理时间的需求,本篇博客将介绍在JDK8之前日期时间API的使用。
目录:
☍ java.util.Date类和子类java.sql.Date类
▾ java.lang.System类
System类提供的public static long currentTimeMillis()用来返回当前时
间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
☄ 此方法适于计算时间差(时间戳)。
计算世界时间的主要标准有:
☃ 此方法适于计算时间差(时间戳)。
☃ 此方法适于计算时间差(时间戳)。
☃ 此方法适于计算时间差(时间戳)。
▾ java.util.Date类和子类java.sql.Date类
表示特定的瞬间,精确到毫秒
Date()构造器:
➣ Date():使用无参构造器创建的对象可以获取本地当前时间。
➣ Date(long millis):指定毫秒数(时间戳)的日期时间对象。
➣ Date(int year, int month, int day):指定年月日,year从1900年开始,月份从0开始,已过时。
Date类常用方法:
➣ getTime():返回自 1970年1月1日 00:00:00 GMT以来的时间戳,等同于System.currentTimeMillis()。
➣ toString():把此 Date 对象转换为默认格式的字符串如:Mon Jun 13 09:40:30 CST 2020。
java.sql.Date类与java.util.Date类的转换:
由于java.sql.Date是java.util.Date的子类,所以这两个类的创建方式和大多数方法基本相同,需要注意sql.Date类无空参构造器,使用 new Date(Long millis)进行实例化操作
java.sql.Date类对应着数据库中的日期类型的变量,多在与数据库交互时使用,其格式与java.util.Date有所区别,格式如:2020-06-11
✥ sql.Date<-->util.Date的转换
➣ 向上转型(自动) java.util.Date date = new java.sql.Date(Long millis);
✥ util.Date-->sql.Date
➣ 通过时间戳/毫秒数转换 java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());
错误方式:不能强制向下转型 报ClassCastException错误 java.sql.Date date = (java.util.Date) new java.util.Date();
▾ SimpleDateFormat类
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat
类是一个不与语言环境有关的方式来格式化和解析Date日期的具体类。
SimpleDateFormat类的实例化操作:
➣ new SimpleDateFormat():使用无参构造器创建默认格式的SimpleDateFormat对象。
➣ new SimpleDateFormat(String pattern):使用String pattern构造器创建自定义格式的SimpleDateFormat对象。
SimpleDateFormat类的格式化和解析操作:
➣ public String format(Date date) :方法格式化时间对象date,返回字符串
➣ public String format(Date date) : public Date parse(String source):将字符串按SimpleDateFomat的格式转换为Date对象,返回Date类对象。
SimpleDateFormat类的格式化和解析操作:
字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G | Era年代标志符 | Text | 公元; AD |
y | 年 | Year | 2020; 20 |
M | 年中的月份 | Month | June; Jun; 06 |
w | 年中的周数 | Number | 27 |
W | 月份中的周数 | Number | 3 |
D | 年中的天数 | Number | 169 |
d | 月份中的天数 | Number | 14 |
F | 月份中的星期 | Number | 3 |
E | 星期的天数 | Text | TuseDay; Tue;星期四 |
a | Am/Pm标记 | Text | PM; 下午 |
H | 小时(0-23) | Number | 0 |
k | 小时(1-24) | Number | 24 |
K | 小时(0-11) | Number | 0 |
h | 小时(1-12) | Number | 12 |
m | 分钟 | Number | 30 |
s | 秒 | Number | 59 |
S | 毫秒(1秒=1000毫秒) | Number | 698 |
z | 时区 | General time zone | PST; GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
▾ Calendar日历类
Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。
Calendar实例化操作:
➣ 使用Calendar.getInstance()方法(常用)。
➣ 调用它的子类GregorianCalendar的构造器。
Calendar类常用方法:
➣ public int get(int get filed):获取指定信息,如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY、MINUTE、SECOND。
➣ public void set(int field, int value):与get(xxx)对应,设置Calendar相应变量的值,如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY、MINUTE、SECOND。
➣ public void add(int field, int amount):将对应信息加值,负数为减值。
➣ public final Date getTime():将calendar对象转换为Date对象,返回Date对象。
➣ public long getTimeInMillis():将calendar对象转换为Long型毫秒数。
➣ public final void setTime(Date date):将calendar对象设置为对应的Date对象(对原对象的操作)。
➣ public void setTimeInMillis(long millis):将calendar对象设置为对应的毫秒数时间(对原对象的操作)。
✦ 获取月份时:一月是0,二月是1,以此类推,12月是11
✦ 获取星期时:周日是1,周二是2 ......周六是7
JDK8新增的日期时间API↷传送门
本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布
__EOF__

本文链接:https://www.cnblogs.com/asio/p/13137026.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法