java.time
Mark Jeronimus zaten söyledi . Ben biraz daha detaylandırıyorum. Sadece yazdırılacak metni tek tırnak içine koyun.
DateTimeFormatter yearFormatter = DateTimeFormatter.ofPattern("yyyy 'year'");
System.out.println(LocalDate.of(2010, Month.FEBRUARY, 3).format(yearFormatter));
System.out.println(Year.of(2010).format(yearFormatter));
System.out.println(ZonedDateTime.now(ZoneId.of("Europe/Vilnius")).format(yearFormatter));
Şu anda çalışırken çıktı:
2010 year
2010 year
2019 year
A DateTimeFormatterBuilderve appendPatternyöntemini kullanıyorsanız, tek tırnak işaretlerini aynı şekilde kullanın. Veya onun appendLiteralyöntemini kullanın ve tek tırnak kullanmayın.
O halde formata nasıl tek bir alıntı koyarız? İki tek tırnak bir tane oluşturur. Çift tek alıntının tek tırnak içinde olup olmaması önemli değildir:
DateTimeFormatter formatterWithSingleQuote = DateTimeFormatter.ofPattern("H mm'' ss\"");
System.out.println(LocalTime.now(ZoneId.of("Europe/London")).format(formatterWithSingleQuote));
10 28 '34 "
DateTimeFormatter formatterWithSingleQuoteInsideSingleQuotes
= DateTimeFormatter.ofPattern("hh 'o''clock' a, zzzz", Locale.ENGLISH);
System.out.println(ZonedDateTime.now(ZoneId.of("America/Los_Angeles"))
.format(formatterWithSingleQuoteInsideSingleQuotes));
Saat 02:00, Pasifik Yaz Saati
Yukarıdaki biçimlendiricilerin tümü ayrıştırma için de kullanılabilir. Örneğin:
LocalTime time = LocalTime.parse("16 43' 56\"", formatterWithSingleQuote);
System.out.println(time);
16:43:56
SimpleDateFormatBu soru yaklaşık 10 yıl önce istendi kullanılan sınıf herkesin bildiği gibi zahmetli ve uzun modası geçmiş olduğunu. Bunun yerine modern Java tarih ve saat API'si olan java.time'ı kullanmanızı tavsiye ederim. İşte bu yüzden bunu gösteriyorum.
Bağlantılar
SimpleDateFormatbirkaç cevapta kullanılan sınıf, herkesin bildiği gibi zahmetli ve modası geçmiş. Bunu önlemek. Bunun yerine Mark Jeronimus'un modern Java tarih ve saat API'si olan java.time'ın kullanımını gösteren kısa cevabını kullanın .