java中的日期轉換
阿新 • • 發佈:2019-02-04
java相關的幾個時間類
可以看出Date類是核心
/**
* Date和DateFormat格式轉化
* > Date類的核心在於其內部的時間戳屬性
* @throws ParseException
*/
public static void testTimeTransfer() throws ParseException {
// 獲取當前時間戳
long timeStamp = System.currentTimeMillis();
// 獲取當前時間
Date date2 = new Date();
// 列印初始資訊
System.out.println("當前時間:" + date2);
System.out.println("當前時間戳:" + timeStamp);
// 時間戳轉成String
// timeStamp:1522511450886
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");// 指定格式
String timeString = simpleDateFormat.format(timeStamp);
System.out.println("TimeStamp ==> String:" + timeString);
// 時間戳轉成Date
// timeStamp:1522511450886
Date date = new Date(timeStamp);
System.out.println("TimeStamp ==> Date:" + date);
// String轉成時間戳
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
// timeString:"2018年04月10日 23時28分14秒";
Date date1 = simpleDateFormat.parse(timeString);
long timeStamp1 = date1.getTime();
System.out.println("String ==> TimeStamp:" + timeStamp1);
// Date轉成時間戳
// date:Sat Mar 31 23:50:50 CST 2018
long timeStamp2 = date.getTime();
System.out.println("Date ==> TimeStamp:" + timeStamp2);
}
執行結果如下:
最後兩項結果有出入是因為 java中的時間戳是精確到毫秒的,所以精確到秒的時間String轉成時間戳時,會將毫秒置為0
/**
* Date和Calendar格式轉化
*/
@Test
public void test2() throws Exception{
//Calendar轉date
Calendar calendar = GregorianCalendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
//date轉Calendar
Date date1 = new Date();
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(date1);
System.out.println(calendar1);
}