1. 程式人生 > >java 對日期函式的操作(Calendar的使用)

java 對日期函式的操作(Calendar的使用)

package test6;

/*
 * 演示 Calendar 的一般操作
 */
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test {
	public Test() {
	}

	public static void main(String[] args) {
		// 字串轉換日期格式
		// DateFormat fmtDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		// 得到日期格式物件
		// Date date = fmtDateTime.parse(strDateMake);

		// 完整顯示日期時間
		String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"))
				.format(new Date());
		System.out.println(str);

		// 建立 Calendar 物件
		Calendar calendar = Calendar.getInstance();
		// 初始化 Calendar 物件,但並不必要,除非需要重置時間
		calendar.setTime(new Date());

		// setTime 類似上面一行
		// Date date = new Date();
		// calendar.setTime(date);

		// 顯示年份
		int year = calendar.get(Calendar.YEAR);
		System.out.println("YEAR is = " + String.valueOf(year));

		// 顯示月份 (從0開始, 實際顯示要加一)
		int MONTH = calendar.get(Calendar.MONTH);
		System.out.println("MONTH is = " + (MONTH + 1));

		// 今年的第 N 天
		int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
		System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);

		// 本月第 N 天
		int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
		System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));

		// 3小時以後
		calendar.add(Calendar.HOUR_OF_DAY, 3);
		int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);
		System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);

		// 當前分鐘數
		int MINUTE = calendar.get(Calendar.MINUTE);
		System.out.println("MINUTE = " + MINUTE);

		// 15 分鐘以後
		calendar.add(Calendar.MINUTE, 15);
		MINUTE = calendar.get(Calendar.MINUTE);
		System.out.println("MINUTE + 15 = " + MINUTE);

		// 30分鐘前
		calendar.add(Calendar.MINUTE, -30);
		MINUTE = calendar.get(Calendar.MINUTE);
		System.out.println("MINUTE - 30 = " + MINUTE);

		// 格式化顯示
		str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar
				.getTime());
		System.out.println(str);

		// 重置 Calendar 顯示當前時間
		calendar.setTime(new Date());
		str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar
				.getTime());
		System.out.println(str);

		// 建立一個 Calendar 用於比較時間
		Calendar calendarNew = Calendar.getInstance();

		// 設定為 5 小時以前,後者大,顯示 -1
		calendarNew.add(Calendar.HOUR, -5);
		System.out.println("時間比較:" + calendarNew.compareTo(calendar));

		// 設定7小時以後,前者大,顯示 1
		calendarNew.add(Calendar.HOUR, +7);
		System.out.println("時間比較:" + calendarNew.compareTo(calendar));

		// 退回 2 小時,時間相同,顯示 0
		calendarNew.add(Calendar.HOUR, -2);
		System.out.println("時間比較:" + calendarNew.compareTo(calendar));
	}
}