2013-07-04 34 views

回答

5

使用new Date(0L);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss"); 
sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
System.out.println(sdf.format(new Date(0L))); 

照顧你時區因爲它會改變取決於你在默認情況下是什麼。

UPDATE 在java中8,你可以使用新java.time

你這種無休止Instant.EPOCH

4

據我所知,你只想將它存儲在一些變量?所以使用 Date epoch = new Date(0);

3

試試這個

Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 
    c.setTimeInMillis(0); 
    int day = c.get(Calendar.DATE); 
    int month = c.get(Calendar.MONTH) + 1; 
    int year = c.get(Calendar.YEAR); 
1

TL;博士

Instant.EPOCH 

使用java.time

包括DateCalendar在內的麻煩的舊日期時間類現在是遺留的,被java.time類取代。很多java.time功能都被移植到了Android上(見下文)。

要獲得Java & Unix epoch reference日期爲1970-01-01的日期值,請使用LocalDateLocalDate類表示沒有時間和不帶時區的僅限日期的值。

LocalDate epoch = LocalDate.ofEpochDay(0L) ; 

epoch.toString:1970-01-01

要獲得同樣的劃時代的日期時間值,使用常量Instant.EPOCHInstant類表示UTC中時間軸上的一個時刻,分辨率爲nanoseconds(小數點後最多九(9)位數字)。

Instant epoch = Instant.EPOCH ; 

epoch.toString():1970-01-01T00:00:00Z

在標準ISO 8601輸出的Z是短期的和Zulu裝置UTC

要獲得此後數年,數月,數天,請使用Period類。

Period period = Period.between( 
    LocalDate.ofEpochDay(0) , 
    LocalDate.now(ZoneId.of("America/Montreal")) 
) ; 

搜索堆棧溢出有關Period的更多討論和示例。


關於java。時間

java.time框架內置於Java 8及更高版本。這些類取代了日期時間類legacy,如java.util.Date,Calendar,& SimpleDateFormat

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

從何處獲取java.time類?