次のコードを検討してください。
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)));
}
joda-time クラス ( DateTime
、LocalDate
など) にはtoString
、必要な形式の文字列を受け入れるメソッドが含まれていました。これは非常に便利な方法でした。しかし、Java-8 の実装ではこのメソッドが省略されています。代わりに、 を呼び出す必要がありますformat(DateTimeFormatter formatter)
。
確かに、小さな不満。しかし、私の質問は次のとおりです。これが java.time から省略された理由はありますか? アプリケーションを joda-time から java.time に変換することは、このわずかな欠落のために非常に難しくなります。でも、合理的な理由があれば納得です。あなたが私の懸念を和らげるためにここにいるわけではありませんが、念のため聞いてみようと思いました.
編集:投票に近い人にとって、これは意見に基づく質問ではありません。joda-time/java.time の内部構造と、特定の方法で開発する動機をよく知っている人なら誰でも、たとえ実際にそうでなくても、質問に答える資格があります。