考慮下面的代碼:java.time ::的toString(字符串模式)方法缺少
public static void main(String[] args) {
String pattern = "MMM dd, yyyy HH:mm:ss a z";
// joda-time
DateTime dt = DateTime.now();
System.out.println(dt.toString(pattern));
// java.time
ZonedDateTime ldt = ZonedDateTime.now();
System.out.println(ldt.toString(pattern)); // doesn't exist
System.out.println(ldt.format(DateTimeFormatter.ofPattern(pattern)));
}
喬達時類(DateTime
,LocalDate
,等等)包括一個toString
方法接受的格式的字符串你通緝。這是一個非常方便的方法。然而,java-8實現忽略了這種方法。相反,您需要撥打format(DateTimeFormatter formatter)
。
一個小抱怨,當然。但我的問題是:是否有任何理由從時間省略?由於這個小的省略,將我的應用程序從joda-time轉換爲java.time會更加困難。但是,如果有合乎邏輯的原因,我可以。並不是說你在這裏是爲了緩解我的擔憂,但我想我會問,以防萬一。
編輯:對近親選民,這不是一個基於意見的問題。任何熟悉joda-time/java.time內部工作的人以及他們以某種方式發展的動機都有資格回答這個問題,即使他們從來不這樣做。
請注意,喬達時間仍然是一個圖書館的地獄,沒有真正的理由(除非你需要保存500KB的'.jar'存儲)切換。 –
然後,java.time的主要目的是爲了防止新項目需要焦點時間? – ryvantage
@ryvantage「java.time」的作者是JodaTime的作者。所以我會說'java.time'是JodaTime的精神繼承者。 –