本篇總結一下jdk8之前的日期處理方式,jdk8中新的日期處理以後用到總結。
package com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateAndTime {
public static void main(String[] args) {
int year;
int month;
int day;
//老版本
Date date = new Date();
year = date.getYear()+1900;
month = date.getMonth()+1;
day = date.getDate();
System.out.println("老--"+year+"年"+month+"月"+day+"日");
//新版本
Calendar calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH)+1;
day = calendar.get(Calendar.DATE);
System.out.println("新--"+year+"年"+month+"月"+day+"日");
//毫秒數
long now = System.currentTimeMillis();
Date date2 = new Date(now); //或 : date.setTime(now); long-->Date
System.out.println(date2.getDate());
//時間類型轉換 long <-> Date <-> Calendar
calendar.setTime(date2); // Date-->Calendar
System.out.println(calendar.get(Calendar.YEAR));
calendar.getTime(); // Calendar-->Date
System.out.println(calendar.getTime().getDate());
date.getTime();
System.out.println(date.getTime());// Date-->long
//時間輸入輸出
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = fmt.format(date2); // Date-->String
try {
Date date3 = fmt.parse("2015-12-19 16:20:00"); // String-->Date
System.out.println(date3);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(today);
//利用Calendar時間計算
calendar.add(Calendar.YEAR, 2);
calendar.add(Calendar.MONTH, 1);
System.out.println(fmt.format(calendar.getTime()));//今天是2015年12月19號,這裏應該是2018年1月19號
}
}
控制檯打印如下:
老--2015年12月19日
新--2015年12月19日
19
2015
19
1450513438352
Sat Dec 19 16:20:00 CST 2015
2015-12-19 16:23:58
2018-01-19 16:23:58