Java經常使用日期操作具體解釋
阿新 • • 發佈:2017-07-25
data exc 用法 div pen mod code 日歷 pri
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 - 14));
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
Java經常使用日期操作具體解釋