java日期对象Date和日期格式化对象SimpleDateFormat

日期格式字符串
y :代表年
M :代表月
d: 代表日
E: 代表星期
H :代表24进制的小时
h :代表12进制的小时
m: 代表分钟
s :代表秒
S :代表毫秒

//获取一个日期对象
Date date = new Date();
System.out.println(date);

SimpleDateFormat类 格式化日期
功能:格式化和解析日期

  1. 将Date类型的日期格式化成我们需要的日期类型一般是
  2. 字符串类型将字符串类的日期再转回来
方法名描述
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版权协议,转载请附上原文出处链接和本声明。