日期格式字符串
y :代表年
M :代表月
d: 代表日
E: 代表星期
H :代表24进制的小时
h :代表12进制的小时
m: 代表分钟
s :代表秒
S :代表毫秒
//获取一个日期对象
Date date = new Date();
System.out.println(date);
SimpleDateFormat类 格式化日期
功能:格式化和解析日期
- 将Date类型的日期格式化成我们需要的日期类型一般是
- 字符串类型将字符串类的日期再转回来
方法名 | 描述 |
---|---|
format(Date date) | 将date型转换成特定格式的字符串 |
parse(String str) | 将字符串str转换成特定格式的date型 |
上边代码得到的date格式不是我们常用的格式,但是我们可以把它转化成我们常用的格式,通过SimpleDateFormat类 中的 format(Date date) 将date型转换成特定格式的字符串。
//转化称我们能看懂的格式
new SimpleDateFormat("yyyy-MM-dd W w EEE hh:mm:ss");
// 参数 就是你想要的日期 格式 2020-10-16 16:36
//2020/10/16 16:36
//yyyy---> 年
//MM---> 月
//dd --> 日
//HH --> 24小时制
//hh--> 12小时制
//mm --> 分钟
//ss -->秒
//EEE -->星期
//W --> 一月中的第几周
//w--> 一年中的第几周
SimpleDateFormat sm1 = new SimpleDateFormat("yyyy/MM/dd W w EEE hh:mm:ss");
String ss = sm1.format(date);
System.out.println(ss);
也可以通过SimpleDateFormat类将一个字符串格式的日期,转换成Date类型。使用parse(String str) 将字符串str转换成特定格式的date型 如下代码。
public static void main(String[] args) throws ParseException { Date date = new Date();//获取一个国际化的日期格式
System.out.println(date);//Fri Nov 13 11:26:04 CST 2020
System.out.println(date.getTime());//获取毫秒数
System.out.println(date.getHours());//使用SimpleDateFormat 类 来堆日期进行格式化
//将国际化的日期格式转化为中国通用格式 Date--->String
// 1.需要一个格式化的日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss");
//2.调用日期对象的format方法,进行转化。
String s = sdf.format(date);
System.out.println(s);
//将中国通用格式String---》Date类型
String str = "2020-11-13 星期五 11:40:24";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss");
Date parse = sdf1.parse(str);
System.out.println(parse); }
jdk1.8之后的新增日期时间相关类
时间相关类 | 介绍 |
---|---|
LocalDateTime | 日期时间处理类,返回日期时间 |
LocalDate | 日期处理类,返回日期 |
LocalTime | 时间处理类,返回时间 |
DateTimeFormatter | 格式化日期类 |
Duration | 类以秒和纳秒为单位建立数量或时间量 |
Period | 以年,月和日为单位建立数量或时间量 |
方法 | 含义 |
---|---|
now.format(DateTimeFormatter dateTimeFormatter) 如何拿到DateTimeFormatter? 通过DateTimeFormatter类中的ofPattern();可以拿到 括号中就定义我们需要的格式 | 将日期转化成字符串类型 |
parse(str,DateTimeFormatter dateTimeFormatter) | 将字符串转化成日期类型 |
public static void main(String[] args) {
LocalDate now = LocalDate.now();
System.out.println(now);
LocalTime now1 = LocalTime.now();
System.out.println(now1);
LocalDateTime now2 = LocalDateTime.now();
System.out.println(now2);
//使用DateTimeFormatter 将日期转化成字符串类型
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String ss = now.format(dateTimeFormatter);
System.out.println(ss);
//使用DateTimeFormatter 将字符串转化成Date类型
String str = "2020/10/16";
//创建一个格式化日期类,用来解析字符串日期
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate date = LocalDate.parse(str, dateTimeFormatter1);
System.out.println(date);
DateTimeFormatter格式化日期类
方法:
ofPattern(“日期格式”); 创建特定格式的格式化日期对象
Duraction类 表示:时间的区间,用来度量秒和纳秒之间的时间值Period类 表示:一段时间的区间,用来度量年月日和几天之间的时间值
计算时间差值
计算时间的差值:Duration.between()
public static void main(String[] args) throws ParseException {
LocalDateTime ldt=LocalDateTime.now();
LocalDateTime paldt=LocalDateTime.parse("1999-10-16T17:10:16.355");
Duration dt=Duration.between(paldt,ldt);
System.out.println(dt.toDays());//间隔的天数
System.out.println(dt.toHours());//小时
System.out.println(dt.toMinutes());//分钟
System.out.println(dt.getSeconds());//毫秒
}
public static void main(String[] args) {
String s1 = "2020-11-20";
String s2 = "2022-10-11";
LocalDate ld1 = LocalDate.parse(s1);
LocalDate ld2 = LocalDate.parse(s2);
//Duration d1 =Duration.between(ld1,ld2);
//Period p = Period.between(ld1,ld2);
// ChronoUnit类可用于在单个时间单位内测量一段时间,例如天数或秒。
long days = ChronoUnit.DAYS.between(ld1,ld2);
System.out.println(days);
}
版权声明:本文为qq_41720578原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。