2014-07-18 20 views
0

我想2014-07-17T22轉換這個日期字符串:41:17 + 0000到timestmap,與此類似:1405645259000.日期爲timestamp

我已經試過類似這樣:

String string = "January 2, 2010"; 
Date date = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(string); 
System.out.println(date); 

如何將此(2014-07-17T22:41:17 + 000)轉換爲日期?什麼是正確的格式?我很茫然。

+0

請閱讀這篇文章。希望這可以幫助。 http://stackoverflow.com/questions/24726584/how-to-compare-two-times-in-java/24726693#24726693 – Gavin

回答

6

看看http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

您的日期字符串具有相同的格式

yyyy-MM-dd'T'HH:mm:ssZ //Eg: 2001-07-04T12:08:56-0700 

所以,你的代碼應該是:

String string = "2014-07-17T22:41:17+0000"; 
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH).parse(string); 
System.out.println(date); 
+0

謝謝,我會接受它的時間限制是 – user3776241

3

使用這種模式:

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH).parse(string); 
1

t升;博士

OffsetDateTime.parse("2014-07-17T22:41:17+0000") 
       .toInstant() 
       .toEpochMilli() 

避免java.util.Date

你的問題,因爲他們是出了名麻煩很容易在喬達,時間或新java.time包在Java中8,避免java.util.Date和.Calendar。

ISO 8601

您的字符串是在標準格式,具有ISO 8601以上使用ISO 8601提及作爲默認值用於解析和生成字符串兩個文庫規定。

java.time

OffsetDateTime類表示在時間軸上一個時刻與偏移從-UTC並在納秒的分辨率。

OffsetDateTime odt = OffsetDateTime.parse("2014-07-17T22:41:17+0000"); 

從那裏,你可以要求計數的-毫秒紀元以來通過Instant類。 Instant類表示UTC中時間軸上的一個時刻,分辨率爲nanoseconds(小數點後最多九(9)位數字)。

long millisecondsSinceEpoch = odt.toInstant().toEpochMilli(); 

關於java.time

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

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

從何處獲取java.time類?

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


上約達時間2.3約達時間

實施例的代碼。

long millisSinceEpoch = new DateTime("2014-07-17T22:41:17+0000").getMillis(); 
相關問題