Java日期、字符串、毫秒值格式转换

  1 /**
  2  * 
  3  */
  4 package study.reliable;
  5 /** 
  6 * @author : Administrator
  7 * @date :2022年4月21日 下午9:38:55 
  8 * 
  9 */
 10 /**
 11  * @author Administrator
 12  *
 13  */
 14 
 15 import java.text.DateFormat;
 16 import java.text.ParseException;
 17 import java.text.SimpleDateFormat;
 18 import java.util.Date;
 19 
 20 public class DateDemo {
 21     //将毫秒值转换为日期
 22     public void demo1() {
 23         //获取当前时间毫秒值
 24         long time = System.currentTimeMillis();
 25         System.out.println(time);    // 1650548737097
 26      
 27         //用Dated对象获取当前时间
 28         Date date = new Date();        
 29         System.out.println(date);// Thu Apr 21 21:46:40 CST 2022
 30      
 31         //将指定时间(毫秒值)传给Date构造器,自动转换为日期,后面记得加上L
 32         Date date2 = new Date(time);
 33         System.out.println(date2);
 34     }
 35     
 36     //格式化日期输出
 37     /*
 38      * K :  A.M./P.M. (0~11)格式小时
 39      * H :    一天中的小时 (0~23)
 40      * k :   一天中的小时(1~24)
 41      * h :   A.M./P.M. (1~12)格式小时
 42      */
 43     private void demo2() {
 44         // 获取当前时间对象  
 45         Date date = new Date(); 
 46      
 47         // 获取日期格式器
 48         DateFormat dateFormat = DateFormat.getDateInstance();
 49         // 输出结果为 2022-4-21
 50         System.out.println(dateFormat.format(date));
 51      
 52         // 获取日期/时间格式器
 53         dateFormat = DateFormat.getDateTimeInstance();
 54         // 输出结果为  2022-4-21 21:47:44
 55         System.out.println(dateFormat.format(date));
 56      
 57         // 自定义格式 比如晚上九点 用kk就是 21 用hh就是09
 58         dateFormat = new SimpleDateFormat("yyyy/MM/dd kk:mm:ss");    
 59         // 输出结果为  2022/04/21 09:52:15 
 60         System.out.println(dateFormat.format(date));
 61         
 62     }
 63     //字符串转日期
 64     private static void demo3() throws ParseException {
 65          
 66             String string = "2017---3---12";    
 67          
 68             //获取日期格式对象方法
 69             DateFormat dateFormat = DateFormat.getDateInstance();
 70          
 71             //这里的格式要和字符串日期的格式匹配,不然会抛出转换异常   
 72             dateFormat = new SimpleDateFormat("yyyy---MM---dd");
 73          
 74             Date date = dateFormat.parse(string);
 75             //输出结果为  Sun Mar 12 00:00:00 CST 2017   
 76             System.out.println(date);   
 77          
 78             //输出结果为  2017-3-12 0:00:00
 79             System.out.println(DateFormat.getDateTimeInstance().format(new Date(dateFormat.parse(string).getTime()) ));
 80         }
 81     /*
 82      * 两日期相减
 83      * 将字符串转换为日期对象,再转换成毫秒值,将毫秒值相减,再换算成天数。
 84      */
 85     private static void demo4() throws ParseException {
 86          
 87         String s1 = "2017-3-22";
 88         String s2 = "2017-4-12";
 89      
 90         //定义日期格式器
 91         DateFormat dateFormat = DateFormat.getDateInstance();
 92      
 93         //从给定字符串的开始解析文本,以生成一个日期,返回的是Date对象  
 94         Date date1 = dateFormat.parse(s1);
 95         Date date2 = dateFormat.parse(s2);
 96      
 97         //毫秒值用long,int位数不够  
 98         long time1 = date1.getTime();
 99         long time2 = date2.getTime();
100      
101         //两日期相减的绝对值 
102         long time = Math.abs(time1-time2);
103      
104         //输出结果: 21  
105         System.out.println(time/1000/60/60/24); //毫秒值转换为天数
106      
107     }
108     public static void main(String args[])
109     {
110         DateDemo myDate = new DateDemo();
111 //        myDate.demo1();
112         try {
113             myDate.demo3();
114         } catch (ParseException e) {
115             // TODO 自动生成的 catch 块
116             e.printStackTrace();
117         }
118     }
119     
120 }

 

posted @ 2022-04-21 22:03  靠谱杨  阅读(996)  评论(0编辑  收藏  举报