Java之時間轉換

youcongtech發表於2018-06-26
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = sdf.parse("2018-06-05 13:01:25");    
    System.out.println(date.getTime());
    System.out.println(sdf.format(date.getTime()));   

    這個例子就足以說明Date型別的資料如何轉換為Long型別
    Long型別的日期如何轉換為Date
    
    特別是第三方介面,很多介面傳參除了傳簽名外還有時間戳,時間戳通常就是用Long型別的時間表示的(這裡指的是將Date轉為Long型別)
    之所以做主要考慮到安全。

     Date dt =new Date();  
        System.out.println(dt); //格式: Wed Jul 06 09:28:19 CST 2016  
          
        //格式:2018-6-24  
        String formatDate = null;  
        formatDate = DateFormat.getDateInstance().format(dt);  
        System.out.println(formatDate);    
          
        //格式:2018年6月24日 星期三  
        formatDate = DateFormat.getDateInstance(DateFormat.FULL).format(dt);  
        System.out.println(formatDate);  
          
        //格式 24小時制:2018-06-24 09:39:58  
        DateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //HH表示24小時制;  
        formatDate = dFormat.format(dt);  
        System.out.println(formatDate);  
          
        //格式12小時制:2018-06-24 09:42:44  
        DateFormat dFormat12 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //hh表示12小時制;  
        formatDate = dFormat12.format(dt);  
        System.out.println(formatDate);  
          
        //格式去掉分隔符24小時制:20160706094533  
        DateFormat dFormat3 = new SimpleDateFormat("yyyyMMddHHmmss");  
        formatDate = dFormat3.format(dt);  
        System.out.println(formatDate);  
          
        //格式轉成long型:1467770970  
        long lTime = dt.getTime() / 1000;  
        System.out.println(lTime);  
          
        //格式long型轉成Date型,再轉成String:  1464710394 -> ltime2*1000 -> 2018-06-24 23:59:54  
        long ltime2 = 1464710394;  
        SimpleDateFormat lsdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        Date lDate = new Date(ltime2*1000);  
        String lStrDate = lsdFormat.format(lDate);  
        System.out.println(lStrDate);  
          
        //格式String型轉成Date型:2018-06-24 10:17:48 -> Wed Jul 06 10:17:48 CST 2016  
        String strDate = "2018-06-24 10:17:48";  
        SimpleDateFormat lsdStrFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        try {  
            Date strD = lsdStrFormat.parse(strDate);  
            System.out.println(strD);  
        } catch (ParseException e) {  
            e.printStackTrace();  
        }  

 以上是比較常用的時間型別轉換,通常簽名比較常用的就是Long型別的時間戳,支付用的比較多,為了安全起見。

至於String型別的話,什麼建立時間,更新時間等比較常用。


相關文章