Java基礎(五) Java日期時間
阿新 • • 發佈:2018-12-01
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版本的區分,後面再進行整理