Calendar and Date and simpleDateformat
package date_using;
import java.awt.image.SampleModel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
*Calendar是單例模式,是根據子類 GregorianCalendar的例項實現的(多型)
*
* @author Administrator
* @tags
* @copyright katherinelove
* @date 2018年8月19日 上午9:21:39
*/
public class CalendarAndDate {
public static void main(String[] args) throws ParseException {
//獲取的唯一例項是子類GregorianCalendar的例項 多型形式
//date物件只是可以作為中間例項,已經過時了
//只能例項化一個物件,但是可以自主設定時間
Calendar cal1=Calendar.getInstance();
int year=cal1.get(Calendar.YEAR);
int month=cal1.get(Calendar.MONTH);
int dayOfMonth=cal1.get(Calendar.DAY_OF_MONTH);
int hour=cal1.get(Calendar.HOUR_OF_DAY);
int minute=cal1.get(Calendar.MINUTE);
int second=cal1.get(Calendar.SECOND);
long msecond=cal1.get(Calendar.MILLISECOND);
//如何組裝成固定格式
//一是 string.format()方法
//%02d 2表示兩位數,不足兩位補0
String strTime=String.format("%d-%02d-%02d %d:%d:%d %d",
year,month,dayOfMonth,hour,minute,second,msecond);
System.out.println("當前時間是:"+strTime);
//二是 利用Date.toLocalString()
//為日曆設定格式
cal1.set(2012,5,12,14,28,52);
Date date=cal1.getTime();
System.out.println("設定時間後:"+date.toLocaleString());
//三是 利用SimpleDateFormat物件.format()方法格式化解釋時間
//設定時間格式
SimpleDateFormat format=
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
//date 作為中間物件 解析時間字串 SimpleDateFormat物件.parse(string)
Date newDate=format.parse("2017-8-9 14:22:32:222");
System.out.println("解析後時間:"+newDate.toLocaleString());
//如何獲取另外一個時間物件 利用GregorianCalendar的例項化
// GregorianCalendar cal=new GregorianCalendar();
//為了獲取8月 要設定成(8-1)
Calendar cal2=new GregorianCalendar(2012,(8-1),12); //多型形式
//cal2.getTimeInMillis()
//Calendar物件.getTimeInMillis() 獲取1900以來的毫秒數
long diff=cal2.getTimeInMillis()-cal1.getTimeInMillis();
int diffDay=(int)(diff/1000/60/60/24);
System.out.println("時間差:"+diff+"ms");
System.out.println("相差天數:"+diffDay+"D");
//如何獲取當前時間各個field的取值範圍
System.out.println("cal2當前時間年份最大值"+
cal2.getActualMaximum(Calendar.YEAR));
System.out.println("cal2當前時間年份最大值"+
cal2.getActualMinimum(Calendar.YEAR));
}
}