GregorianCalendarインスタンスがあり、必要な出力を取得するには、SimpleDateFormat(または、カレンダーで使用できるが、必要な#fromat()機能を提供するもの)を使用する必要があります。恒久的な解決策と同じくらい良い回避策を提案してください。
5 に答える
これを試して:
Calendar cal = new GregorianCalendar();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
dateFormat.setTimeZone(cal.getTimeZone());
System.out.println(dateFormat.format(cal.getTime()));
eQuiの答えにはステップがありません
Calendar cal = new GregorianCalendar();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
#---- This uses the provided calendar for the output -----
dateFormat.setCalendar(cal);
System.out.println(dateFormat.format(cal.getTime()));
Calendar.getTime()は、SimpleDateFormatで使用できる日付を返します。
結果のオブジェクトを呼び出してメソッドにcalendar.getTime()
渡すだけです。Date
format
java.time
日付と時刻の作業には、最新のJava日付と時刻のAPIであるjava.timeを使用することをお勧めします。そうではありませんGregorianCalendar
。aGregorianCalendar
は日付、時刻、タイムゾーンのすべてを保持していたので、それの一般的な現代の代替はですZonedDateTime
。
必要な出力が何であるかを指定しませんでした。人間のユーザー向けの出力が必要だと思います。したがって、ユーザーのロケールにJavaの組み込みのローカライズされた形式を使用します。
private static final DateTimeFormatter FORMATTER
= DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG)
.withLocale(Locale.forLanguageTag("es"));
例としてスペイン語を指定しました。JVMのデフォルトのロケールを使用する場合は、Locale.getDefault(Locale.Category.FORMAT)
への呼び出しを指定するか、withLocale()
完全に除外することができます。これで、aのフォーマットZonedDateTime
は簡単になりました(そして、GregorianCalendar
)を使用した場合よりも簡単になりました。
ZonedDateTime zdt = ZonedDateTime.of(
2011, 4, 11, 19, 11, 15, 0, ZoneId.of("Australia/Perth"));
System.out.println(zdt.format(FORMATTER));
この例からの出力:
11 de abril de 2011、19:11:15 AWST
日付のみが必要で、時刻やタイムゾーンが不要な場合は、次の2つの変更が必要です。
LocalDate
の代わりに使用してくださいZonedDateTime
。DateTimeFormatter.ofLocalizedDate()
の代わりに使用してください.ofLocalizedDateTime()
。
私が本当に得た場合はどうなりGregorianCalendar
ますか?
GregorianCalendar
まだjava.timeにアップグレードされていないレガシーAPIから取得した場合は、次のように変換しZonedDateTime
ます。
GregorianCalendar cal = new GregorianCalendar(
TimeZone.getTimeZone(ZoneId.of("Australia/Perth")));
cal.set(2011, Calendar.APRIL, 11, 19, 11, 15);
ZonedDateTime zdt = cal.toZonedDateTime();
次に、前と同じように続行します。出力は同じになります。
リンク
Oracleチュートリアル: java.timeの使用方法を説明する日時。