java如何獲取當前日期和時間


System.currentTimeMillis()

獲取標准時間可以通過System.currentTimeMillis()方法獲取,此方法不受時區影響,得到的結果是時間戳格式的。例如:

1543105352845 
我們可以將時間戳轉化成我們易於理解的格式

SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
Date date = new Date(System.currentTimeMillis());
System.out.println(formatter.format(date));
則該時間戳對應的時間為:

2018-11-25 at 01:22:12 CET
值得注意的是,此方法會根據我們的系統時間返回當前值,因為世界各地的時區是不一樣的。

java.util.Date

在Java中,獲取當前日期最簡單的方法之一就是直接實例化位於Java包java.util的Date類。

Date date = new Date(); // this object contains the current date value 
上面獲取到的日期也可以被format成我們需要的格式,例如:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
System.out.println(formatter.format(date)); 
Calendar API

Calendar類,專門用於轉換特定時刻和日歷字段之間的日期和時間。

使用Calendar 獲取當前日期和時間非常簡單:

Calendar calendar = Calendar.getInstance(); // get current instance of the calendar 
與date一樣,我們也可以非常輕松地format這個日期成我們需要的格式

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
System.out.println(formatter.format(calendar.getTime())); 
上面代碼打印的結果如下:

25-11-2018 00:43:39
Date/Time API

Java 8提供了一個全新的API,用以替換java.util.Date和java.util.Calendar。Date / Time API提供了多個類,幫助我們來完成工作,包括:

LocalDate
LocalTime
LocalDateTime
ZonedDateTime
LocalDate

LocalDate只是一個日期,沒有時間。 這意味着我們只能獲得當前日期,但沒有一天的具體時間。

LocalDate date = LocalDate.now(); // get the current date 
我們可以format它

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); 
System.out.println(date.format(formatter)); 
得到的結果只有年月日,例如:

25-11-2018 
LocalTime

LocalTime與LocalDate相反,它只代表一個時間,沒有日期。 這意味着我們只能獲得當天的當前時間,而不是實際日期:

LocalTime time = LocalTime.now(); // get the current time 
可以按如下方式format

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); 
System.out.println(time.format(formatter)); 
得到的結果類似如下:

00:55:58 
LocalDateTime

最后一個是LocalDateTime,也是Java中最常用的Date / Time類,代表前兩個類的組合 - 即日期和時間的值:

LocalDateTime dateTime = LocalDateTime.now(); // get the current date and time 
format的方式也一樣

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"); 
System.out.println(dateTime.format(formatter)); 
得到的日期結果類似於:

25-11-2018 00:57:20

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM