2016-01-21 35 views
-1

我有以下的日期是以下類型:Date java.util.Calendar.getTime()從Java的時間日期拆卸時間

Thu Jan 21 14:54:30 AST 2016 

我想從日期部分刪除時,按正常方式我會做這個方式:

DateFormat outputFormatter = new SimpleDateFormat("MM/dd/yyyy"); 
outputFormatter .format(mydate); 

它工作得很好,但我很好奇,看看是否有更好的方式使用Java Time API做它?

+1

https://stackoverflow.com/questions/21242110/convert-java-util-date-to-java-time-localdate –

+0

使用簡單日期格式化程序是處理此問題的正確方法。 – AnthonyJClink

回答

2

如果從日曆開始,你可以這樣做:

Calendar c = Calendar.getInstance(); 
Instant instant = Instant.ofEpochMilli(c.getTimeInMillis()); 
LocalDate date = instant.atZone(ZoneId.systemDefault()).toLocalDate(); 

您可以創建DateTimeFormatter如果你想然後格式化。

但請注意,新API的想法是根本不使用日曆或日期,除非您從無法更改的方法獲取它們。

+0

要清楚的是,java.util.Date和java.util.Calendar是與最早版本的Java捆綁在一起的舊日期時間類。避免它們。它們已被內置於Java 8及更高版本中的[java. java.time]類(http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html)所取代,例如在這個正確答案中看到的'java.time.Instant'和'java.time.LocalDate'類。 –