Date表示日期:1970年1月1日0點0分0秒0毫秒到現在的毫秒數,他的組成部分:yyyy,MM,dd,hh|HH,mm,ss
Calendar:日曆,通常用於日期計算
獲取當前時間並格式化輸出
@Test
public void test(){
Date now = new Date();//表示系統的當前日期
//格式化輸出
SimpleDateFormat sdf = new SimpleDateFormat("HH點mm分ss秒");
System.out.println(sdf.format(now));
}
獲取當前時間毫秒數
@Test
public void test2(){
long a = System.currentTimeMillis();//當前時間的毫秒
System.out.println(a);
long b = System.currentTimeMillis();
System.out.println(b-a);
}
接受用戶輸入日期,並解析成date
public void test3() throws ParseException{
//接受用戶輸入日期
Scanner input = new Scanner(System.in);
System.out.println("請輸入你的生日:yyyy-MM-dd");
String s = input.nextLine();
//將用戶輸入的生日解析成Date類型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birth = sdf.parse(s);
}
Calendar
@Test
public void test4(){
Calendar cal = Calendar.getInstance();//獲取實例
// print(cal);
// cal.set(Calendar.DAY_OF_MONTH, 1);//把日曆設置成本月的第一天
// print(cal);
// cal.set(Calendar.MONTH, 0);//把日曆設置成這一年第一個月
// print(cal);
// System.out.println(cal.get(Calendar.YEAR));
//兩個相約十年後此時此刻相見
// cal.add(Calendar.YEAR, 10);
// print(cal);
// cal.add(Calendar.MONTH, 27);
cal.add(Calendar.DAY_OF_MONTH, -10);
print(cal);
System.out.println(cal.get(Calendar.DAY_OF_WEEK)==Calendar.TUESDAY);
System.out.println(cal.get(Calendar.MONTH));
cal.add(Calendar.DAY_OF_MONTH, 28);
System.out.println(cal.get(Calendar.MONTH));
}
private void print(Calendar cal) {
String s = String.format("%1$tY年%1$tm月%1$td日 %tH點", cal);
System.out.println(s);
}
萬年曆
public static void main(String[] args) {
System.out.println("按yyyy-MM-dd格式輸入日期");
Scanner sc = new Scanner(System.in);
String sdate = sc.nextLine();
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(sdate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//System.out.println(String.format("%1$tY年%1$tm月%1$td日 %tH點", calendar));
//calendar.setFirstDayOfWeek(2);//週一設爲一週第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);//日曆設爲本月第一天
int DayOfMonth = calendar.getActualMaximum(Calendar.DATE);//判斷這個月多少天
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i= 0;i<calendar.get(Calendar.DAY_OF_WEEK)-1;i++){
System.out.print("\t");
}//月初第一天前位置加空格
for (int i = 0; i < DayOfMonth; i++) {
if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)
System.out.println();//換行
System.out.print(calendar.get(Calendar.DAY_OF_MONTH )+"\t");
calendar.add(Calendar.DAY_OF_MONTH , 1);
}
}