1. 程式人生 > >Java中Long、String、Date 型別之間的轉換

Java中Long、String、Date 型別之間的轉換

本文題材比較簡單,僅僅作為自己的個人筆記,以備不時之需。今天拿到一個long型別的值,想要轉化成Date型別,一時卻想不起來,看樣子記筆記還是必須的啊!

(1)java.util.Date型別轉換成long型別
不要嘮叨了,還是先上程式碼

            Date date=new Date();
            System.out.println(date.getTime());

解析:其中getTime()返回為long型別,長度為13,表示毫秒;如果想獲得秒數,只需要除以1000即可。

long mseconds=date.getTime()/1000;

(2)long型別轉換成java.util.Date型別

            SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
            java.util.Date date = new Date(mseconds * 1000);  
            String str = sdf.format(date);  
            System.out.println(str);

前面的mseconds是表示的是秒數,所以要先乘1000得到毫秒數,再轉為java.util.Date型別,這樣就完成了long到Date的轉化;為了格式化輸出Date,可以呼叫SimpleDateFormat的format方法格式化輸出Date

(3)形如“2015-08-31 21:08:06”等格式化string型別轉換成java.util.Date型別

            String str="2015-08-31 21:08:06";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = (Date) sdf.parse(str);
            System.out.println(date.getTime());

其輸出結果為

1441026486000

有時候需要對CST時間進行轉化,如:Wed Sep 16 11:26:23 CST 2009,此時同樣可以用SimpleDateFormat的parse解決

            String str="Wed Sep 16 11:26:23 CST 2009";
            SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
            Date date = (Date) sdf.parse(str);

備註(util類):

import java.text.*;
import java.util.*;



public class DateFormat {

    /**
     * date型別進行格式化輸出
     * @param date
     * @return
     */
    public static String dateFormat(Date date) {
          SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          String dateString = formatter.format(date);
          return dateString;
     }

    /**
     * 將"2015-08-31 21:08:06"型字串轉化為Date
     * @param str
     * @return
     * @throws ParseException
     */
    public static Date StringToDate(String str) throws ParseException{
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = (Date) formatter.parse(str);
        return date;
    }

    /**
     * 將CST時間型別字串進行格式化輸出
     * @param str
     * @return
     * @throws ParseException
     */
    public static String CSTFormat(String str) throws ParseException{
            SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
            Date date = (Date) formatter.parse(str);
            return dateFormat(date);
    }


    /**
     * 將long型別轉化為Date
     * @param str
     * @return
     * @throws ParseException
     */
    public static Date LongToDare(long str) throws ParseException{      
        return new Date(str * 1000);  
    }

}