我需要將時間戳字符串轉換爲java.util.Date
。例如: -如何將時間戳字符串轉換爲java.util.Date
MMDDYYHHMMSS
到MM-DD-YY HH-MM-SS
哪裏MM
是月,DD
是日期,YY
是一年,HH
是小時,MM
是分SS
是秒。
我需要將時間戳字符串轉換爲java.util.Date
。例如: -如何將時間戳字符串轉換爲java.util.Date
MMDDYYHHMMSS
到MM-DD-YY HH-MM-SS
哪裏MM
是月,DD
是日期,YY
是一年,HH
是小時,MM
是分SS
是秒。
您可以像這樣做:
DateFormat format = new SimpleDateFormat("MMddyyHHmmss");
Date date = format.parse("022310141505");
,但我會強烈建議您使用Joda Time代替。這是一個更好的日期/時間圖書館。尤其是,Joda Time中的格式化器/解析器是線程安全的,因此您可以自由地靜態重用它們; java.text.SimpleDateFormat
不是線程安全的,因此您需要爲每個線程創建一個或使用塊對其進行序列化訪問。
使用帶有適當格式字符串的SimpleDateFormat(小心使用正確的格式字母,大寫和小寫字母有不同的含義!)。
java.time.LocalDateTime.parse(
"" ,
DateTimeFormatter.ofPattern("MMdduuHHmmss")
).format(
DateTimeFormatter.ofPattern("MM-dd-uu HH-mm-ss")
)
18年1月23日12-34-56
現代的方法使用java.time類。
定義格式模式以匹配您的輸入字符串。
DateTimeFormatter f = DateTimeFormatter.ofPattern("MMdduuHHmmss") ;
您的兩位數年份將被解釋爲21世紀(20xx)。
解析爲LocalDateTime
,因爲您的輸入字符串缺少任何時區或UTC偏移的指示符。
LocalDateTime ldt = LocalDateTime.parse("" , f) ;
ldt.toString():2018-01-23T12:34:56
生成在所期望的格式的字符串。
DateTimeFormatter fOut = DateTimeFormatter.ofPattern("MM-dd-uu HH-mm-ss") ;
String output = ldt.format(fOut );
18年1月23日12-34-56
你的兩種格式是可怕的,出於多種原因。
當序列化日期時間值時,儘可能使用標準ISO 8601格式。它們被設計成實用,易於通過機器進行分析,便於人類跨文化閱讀。
對於日期時間(例如您的日期時間),中間的T
將日期部分與時間部分分隔開。
2018-01-23T12:34:56
的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
,YearQuarter
和more。
溫柔的請求。請您舉一個例子。 – Manu 2010-02-23 14:25:08
他已經做了? – BalusC 2010-02-23 14:28:10
我想他是指使用喬達時間的例子... – Fortega 2010-02-23 14:41:18