1. 程式人生 > >Java基礎(五) Java日期時間

Java基礎(五) Java日期時間

Java 日期時間
1.java.util 包提供了 Date 類來封裝當前的日期和時間
獲取當前日期時間
Java中獲取當前日期和時間很簡單,使用 Date 物件的 toString() 方法來列印當前日期和時間,如下所示:

public class Datedemo {
	public static void main(String[] args) {
		//初始化Date物件
		Date date =new Date();
		// 使用 toString() 函式顯示日期時間
		System.out.println(date.toString());
	}

}

編譯結果為:

**Sat Oct 27 14:43:53 CST 2018**

2格式化日期
SimpleDateFormat 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何使用者自定義日期時間格式來執行。例如:

public class Datedemo {
	public static void main(String[] args) {
		Date date =new Date();
		
		//SimpleDateFormat屬於DateFormat子類
		DateFormat ft =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		System.out.println(ft.format(date));
	}

}

以上例項編譯執行結果如下:

2018-10-27 02:47:47

DateFormat ft =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

上面程式碼確立了轉換的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是時、分、秒。注意:有的格式大寫,有的格式小寫,例如 MM 是月份,mm 是分;HH 是 24 小時制,而 hh 是 12 小時制。 SimpleDateFormat屬於DateFormat子類

3.Java 休眠(sleep)
sleep()使當前執行緒進入停滯狀態(阻塞當前執行緒),讓出CPU的使用、目的是不讓當前執行緒獨自霸佔該程序所獲的CPU資源,以留一定時間給其他執行緒執行的機會

public class Sleeodate {
	public static void main(String[] args) {
		try {
			
			System.out.println(new Date()+"\n");
		    Thread.sleep(1000*3);  //休眠3秒
			System.out.println(new Date()+"\n");
				
			} catch (Exception e) {
			
		}
	}

輸出結果為

Sat Oct 27 15:04:49 CST 2018

Sat Oct 27 15:04:52 CST 2018

4.測量2個時間差

public class Datecha {
	public static void main(String[] args) {
		try {
			long start=System.currentTimeMillis();
			System.out.println(new Date( ) + "\n");
	        Thread.sleep(5*60*10);
	        
	        System.out.println(new Date( ) + "\n");
	        long end = System.currentTimeMillis( );
	        
	        long differ=end-start;
	        System.out.println("2者的時間差為"+differ);
			
		} catch (Exception e) {
			System.out.println(e);
			
		}
	}

}

輸出結果為,時間相差3秒

Sat Oct 27 15:12:50 CST 2018

Sat Oct 27 15:12:53 CST 2018

2者的時間差為3010

4.使用Calendar類
如何才能設定和獲取日期資料的特定部分呢,比如說小時,日,或者分鐘? 需要使用Calendar 類。

Calendar類的功能要比Date類強大很多,而且在實現方式上也比Date類要複雜一些。

Calendar類是一個抽象類,在實際使用時實現特定的子類的物件,建立物件的過程對程式設計師來說是透明的,只需要使用getInstance方法建立即可,如下:

public class CalendarDate1 {
	public static void main(String[] args) {
		
            Calendar c1 = Calendar.getInstance();
            
            // 獲得年份  
            System.out.println(c1.get(Calendar.YEAR));
            
            // 獲得年份
            int year = c1.get(Calendar.YEAR);
            System.out.println(year);
            // 獲得月份
            int month = c1.get(Calendar.MONTH) + 1;
            System.out.println(month);
            // 獲得日期
            int date = c1.get(Calendar.DATE);
            System.out.println(date);
            // 獲得小時
            int hour = c1.get(Calendar.HOUR_OF_DAY);
            System.out.println(hour);

            // 獲得分鐘
            int minute = c1.get(Calendar.MINUTE);
            System.out.println(minute);
            // 獲得秒
            int second = c1.get(Calendar.SECOND);
            System.out.println(second);
            
            // 獲得星期幾(注意(這個與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)
            int day = c1.get(Calendar.DAY_OF_WEEK);
            System.out.println(day);
            
        }
}

執行結果如下:

2018
2018
10
27
15
44
26
7

參考資料:菜鳥教程,Java時間還有JDK版本的區分,後面再進行整理