public class Calesartest03 {
public static void main(String[] args) {
//創(chuàng)建日歷對(duì)象,表示當(dāng)前時(shí)間
Calendar c=Calendar.getInstance();//獲取具有指定時(shí)區(qū)和區(qū)域設(shè)置的日歷。 返回的Calendar是基于給定時(shí)區(qū)的當(dāng)前時(shí)間與給定的區(qū)域設(shè)置。
//目前獲得的是操作系統(tǒng)上的時(shí)間
//get?(int field)返回給定日歷字段的值
int i = c.get(Calendar.YEAR);//返回當(dāng)前年份的值,int類型
//add?(int field, int amount)將給定的日歷字段(年或月或日或時(shí)或分或秒)增加或減少給定的時(shí)間值
c.add(Calendar.YEAR, 2);//當(dāng)前時(shí)間的年份增加2年
//getTime?()獲得當(dāng)前日歷時(shí)間對(duì)應(yīng)的Date數(shù)據(jù).打印出來(lái)列如:Thu Aug 05 20:55:31 CST 2021
Date date = c.getTime();
//getTimeInMillis?()返回此日歷時(shí)間距離1970年的毫秒數(shù)
long timeInMillis = c.getTimeInMillis();
//setTimeInMillis?(long millis)根據(jù)當(dāng)前給定的毫秒數(shù)設(shè)置成此日歷的時(shí)間
c.setTimeInMillis(timeInMillis);
//set?(int year, int month, int date, int hourOfDay, int minute, int second)//設(shè)置字段中的值后變?yōu)楫?dāng)前日歷的時(shí)間
//set?(int year, int month, int date)
c.set(2019,7,3,12,19,22);
System.out.println(c.getTime());//打印結(jié)果:Sat Aug 03 12:19:22 CST 2019
//setTime?(Date date)將給定的date值設(shè)置為當(dāng)前日歷的時(shí)間
c.setTime(date);
}
}
例題:兩段時(shí)間段
/*
練習(xí)題:兩個(gè)時(shí)間段的值
*/
public class Caledartest02 {
public static void main(String[] args) {
//創(chuàng)建日歷對(duì)象,表示當(dāng)前時(shí)間
Calendar c=Calendar.getInstance();
//set()方法設(shè)置日歷字段的值
c.set(2017,11,11,11,11,11);
//.getTimeInMillis()方法返回的是給定時(shí)間距離1970/01/01 00/00/00 的毫秒數(shù)
long begin = c.getTimeInMillis();
c.set(2019,7,3,12,19,22);
long left = c.getTimeInMillis();
long l=left-begin;
//setTimeInMillis(long)方法將毫秒數(shù)設(shè)置為當(dāng)前的時(shí)間
c.setTimeInMillis(l);
//add(int field, int amount)將給定的時(shí)間量添加或減去給定的日歷字段(加是整數(shù),減掉是負(fù)數(shù))
c.add(Calendar.YEAR,-1970);
//獲得年/月/日 時(shí)/分/秒(YEAR/MONTH/DATE HOUR_OF_DAY/MINUTE/SECOND)
System.out.println(
c.get(Calendar.YEAR) "年" c.get(Calendar.MONTH) "月" c.get(Calendar.DATE) "日"
c.get(Calendar.HOUR_OF_DAY) "時(shí)" c.get(Calendar.MINUTE) "分" c.get(Calendar.SECOND) "秒"
);
}
}