Java日期类详解(Date类和DateFormat类)
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…
一、Date类
在正常开发过程一定会涉及到时间Date类的使用,在增删改查的过程常会对时间这个属性的修改,增删改都会改变该表的时间字段如创建时间或者更新时间,查询常常也是以时间为依据排序等,趁有空总结一波相关基础内容,温故而知新!
概述
java.util.Date
类 表示特定的瞬间,精确到毫秒。
继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。
public Date()
:分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。public Date(long date)
:分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
tips: 由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。例如:
import java.util.Date;
/**
* @Description: [Java-Date类]
* @Author: 辰兮
* @CreateDate: 2021年1月23日15:21:01
*/
public class DateDemo {
public static void main(String[] args) {
// 创建日期对象,把当前的时间
System.out.println(new Date()); //Sat Jan 23 15:21:22 CST 2021
// 创建日期对象,把当前的毫秒值转成日期对象
System.out.println(new Date(0L)); //Thu Jan 01 08:00:00 CST 1970
//换成毫秒-把日期对象转换成对应的时间毫秒值
System.out.println(new Date().getTime());//1611387849711
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
备注:在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。
常用方法
Date类中的多数方法已经过时,常用的方法有:
public long getTime()
把日期对象转换成对应的时间毫秒值。
二、DateFormat类
java.text.DateFormat
是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
- 格式化:按照指定的格式,从Date对象转换为String对象。
- 解析:按照指定的格式,从String对象转换为Date对象。
构造方法
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat
。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:
public SimpleDateFormat(String pattern)
:用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
格式规则
常用的格式规则为:
标识字母(区分大小写) | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
//点进去看到SimpleDateFormat类是继承DateFormat类
public class SimpleDateFormat extends DateFormat{
}
- 1
- 2
- 3
常用方法
DateFormat类的常用方法有:
public String format(Date date)
:将Date对象格式化为字符串。public Date parse(String source)
:将字符串解析为Date对象。
format方法使用案例
使用format方法的代码为:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Description: [Java-SimpleDateFormat类]
* @Author: 辰兮
* @CreateDate: 2021年1月23日15:28:39
*/
public class SimpleDateFormatDemo {
public static void main(String[] args) {
// 对应的日期格式如:2021-01-23 15:28:39
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
// 创建日期格式化对象,在获取格式化对象时可以指定风格
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String str = df.format(date);
String str1 = dateFormat.format(date);
System.out.println(str); // 2021-01-23
System.out.println(str1 ); // 2021-01-23 15:34:00
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
parse方法使用案例
使用parse方法的代码为:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Description: [Java-DateFormat类]
* @Author: 辰兮
* @CreateDate: 2021年1月23日15:41:08
*/
public class DateFormatDemo {
public static void main(String[] args) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
String str = "2021年1月23日";
Date date = dateFormat.parse(str);
System.out.println(date); // Sat Jan 23 00:00:00 CST 2021
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
2021年1月23日21:59:29 愿你们奔赴在自己的热爱里!
文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。
原文链接:blessing.blog.csdn.net/article/details/113063116
- 点赞
- 收藏
- 关注作者
评论(0)