Date類型大多數時間分量計算方法已經被Calendar取代
Date常用方法setTime getTime()
new Date();預設擷取目前的時間
SimpleDateFormat用來格式化和解析日期的具體類
比對日期的字元串
y–>年
M–>月
d–>日
E–>星期
a–>上下午
H–>小時(24小時制)
h–>小時(12小時制)
m–>分
s–>秒
格式化Date傳回值為String
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = sdf.format(new Date());
System.out.println(result);
輸出結果:2015-07-22 21:17:43
将String解析為Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = "2015-07-22 21:21:01";
Date date = sdf.parse(strDate);
System.out.println(date);
輸出結果:
Wed Jul 22 21:21:01 CST 2015
Calender封裝了月曆資訊
常用方法:
getInstance()擷取一個系統所在地區的一個Calender的子類實作
通常用于執行個體化Calendar
set(int field,int value)設定時間
get(int field)擷取時間分量對應值
getActualMaximum(int field)擷取時間分量的最大值
add()對時間分量進行計算
setTime和getTime方法設定和擷取時間
綜合運用:
商品促銷計算程式
需求:
使用者輸入商品生産日期和保存期限,通過程式計算促銷日期
計算規則:
到保存期限前14添所在的周三為促銷日
public class PromotionDate {
public static void main(String[] args) throws Exception {
Calendar cd = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Scanner sc = new Scanner(System.in);
System.out.print("請輸入生産日期:");
Date productionDate= sdf.parse(sc.nextLine());//接收字元串并轉換為日期型
System.out.print("請輸入保存期限:");
int days = sc.nextInt();
cd.setTime(productionDate);
cd.add(Calendar.DAY_OF_YEAR, (days - ));
cd.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
String promotionDate = sdf.format(cd.getTime()); //格式化計算後的日期
System.out.println("該産品的促銷日期為:"+ promotionDate);
sc.close();
}
}
測試結果:
請輸入生産日期:2015-01-01
請輸入保存期限:180
該産品的促銷日期為:2015-06-17