荐 Java 日期时间相关类的使用
Java日期时间相关类的使用
Date 类用于表示时间和日期,由于开发时并没有考虑国际化,所以后来又新设计了 Calendar 类和 DateFormat 类。
一、Date类
1.Date类概述
- Date 类表示特定的瞬间,精确到毫秒。
- Date 类是通过时间原点(
1970.01.01 00:00:00:000
) 和 毫秒值(long类型
)来计算时间的。- Date 类来自 java.util 包,使用时需要导入包。
2.Date类常用的方法
构造方法
public Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
//打印当前系统日期
Date d = new Date();
System.out.println(d);
public Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
//打印从标准基准时间以后的指定毫秒数的对应时间。
Date d = new Date(0L);
System.out.println(d);
成员方法
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
//打印从基准时间到当前时间的毫秒数
Date d = new Date();
System.out.println(d.getTime());
二、Calendar类
1.Calendar类概述
- Calendar 类是一个抽象类。
- 提供了与日历相关的字段。
- Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
2.Calendar常用方法
先看一下常用的日历字段常量
成员方法
int get(int field)
参数:传递特定的日历字段。
返回值:返回给定日历字段的值。
//使用getInstance()创建对象
Calendar c = Calendar.getInstance();
//获取当前年份
int year = c.get(Calendar.YEAR);
//获取当前月份(西方月份从 0 开始,因此需要 + 1)
int month = c.get(Calendar.MONTH) + 1;
//获取当前日期
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
void set(int field, int value)
参数:传递日历字段。
给指定字段传值
//使用getInstance()创建对象
Calendar c = Calendar.getInstance();
//单独设置年月日
c.set(Calendar.YEAR,2000);
c.set(Calendar.MONTH,02);
c.set(Calendar.DATE,20);
//可以同时设置 年、月、日
c.set(2200,03,05);
//设置完之后可用get方法取出,不在演示
abstract void add(int field, int amount)
参数:传递日历字段。
增减或减少的值(正数增加,负数减少)
//使用getInstance()创建对象
Calendar c = Calendar.getInstance();
//减少指定年份
c.add(Calendar.YEAR,-3);
//增加指定月份
c.add(Calendar.MONTH,3);
Date getTime()
返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
//创建日历对象
Calendar c = Calendar.getInstance();
//调用getTime方法
Date date = c.getTime();
System.out.println(date);
三、DateFormat类
1.DateFormat类概述
- DateFormat 类是日期/时间格式化子类的抽象类(
必须使用它的子类
SimpleDateFormat类来创建对象
)。- DateFormat 类可以
完成日期和文本之间的转换
。- DateFarmat 类来自 java.text 包,使用时需要导入包。
2.日期和时间格式
稍微了解,在下面的代码中会有具体的使用
3.[Simple]DateFormat类常用方法
SimpleDateFormat的构造方法
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
//规定需要转换的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
DateFormat的成员方法
String format(Date date)
将一个 Date 格式化为日期/时间字符串。
//规定需要转换的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//获取当前日期
Date d = new Date();
//日期转文本
String str = sdf.format(d);
System.out.println(str);
Date parse(String source)
从给定字符串的开始解析文本,以生成一个日期 。
//规定需要转换的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//文本转日期
Date date = sdf.parse("2020年07月15日 19时04分40秒");
System.out.println(date);
本文地址:https://blog.csdn.net/weixin_44580492/article/details/107367202
推荐阅读
-
Java日期时间API系列5-----Jdk7及以前的日期时间类TimeUnit在并发编程中的应用
-
Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全
-
Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析
-
Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate
-
Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别
-
Java使用DateTimeFormatter格式化输入的日期时间
-
JAVA时间日期处理类,主要用来遍历两个日期之间的每一天
-
为什么不建议使用Date,而是使用Java8新的时间和日期API?
-
Java日期时间API系列30-----Jdk8中java.time包中的新的日期时间API类,减少时间精度方法性能比较和使用。
-
解决Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题