2017-04-14 197 views
0

如何在java中查找當前日期。我發現很多,但每次我得到相同的命令 日期d = new Date();或類似的東西 每個這樣的命令都會返回一個1970年的日期。 我不明白,獲得1970年的日期有什麼好處? 有什麼方法可以讓我獲得當前時間並添加一秒。 我的真正目的是將長期價值轉換爲日期並在其中添加第二個值。 5:40:12應該在添加一秒後給我5:40:13。 任何幫助將不勝感激,因爲我受夠了1970年的日期。找到當前日期和日期在java中的日期

+0

[如何獲取當前日期/時間在Java]可能重複(http://stackoverflow.com/questions/5175728/how-to-get-the-current-date-time-in-java) –

回答

0

Java.Util.Date類是過時了,我會建議使用

Java.Util.Calendar instead. 

如果你正在尋找第二個添加到當前日期,嘗試這樣的事情:

Calendar currentTime = Calendar.getInstance(); // gets a calendar using the default time zone and locale. 
calendar.add(currentTime.SECOND, 1); 
System.out.println(currentTime.getTime()); 

BUT ,使用Date類時收到1970年日期的原因是因爲該類的工作時間爲毫秒,因此您必須將long值乘以1000才能將其轉換爲日期,下面是一個示例。

Date currentDate = new Date(YourLongValue * 1000); 
1

我真正的目的是爲長值轉換爲日期,並添加第二個在裏面。五點四十○分12秒應該添加第二

現在的麻煩java.util.Date類是傳統的,由java.time類取代後給我5點四十分13秒。

Instant.ofEpochMilli(yourLongIntegerGoesHere) // A moment on the timeline in UTC represented a count of nanoseconds since the epoch of `1970-01-01T00:00:00Z`. 
     .atZone(ZoneId.of("Pacific/Auckland") // Time zone for the region whose wall-clock time you want to see. 
     .plusSeconds(1) 
     .toLocalTime()       // Extract just the time-of-day without date and without time zone. 
     .toString()        // Generate a string representing the time-of-day value in standard ISO 8601 format. 

5時40分13秒


關於java.time

java.time框架是建立在Java 8和更高版本。這些類取代了日期時間類legacy,如java.util.Date,Calendar,& SimpleDateFormat

Joda-Time項目現在位於maintenance mode,建議遷移到java.time類。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。規格是JSR 310

從何處獲取java.time類?

ThreeTen-Extra項目與其他類擴展java.time。這個項目是未來可能增加java.time的一個試驗場。您可以在這裏找到一些有用的類,如Interval,YearWeek,YearQuartermore