java.time
マークジェロニムスはすでにそれを言った。私はそれをもう少し肉付けしています。印刷するテキストを一重引用符で囲むだけです。
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));
今実行中の出力:
2010 year
2010 year
2019 year
あなたがAを使用している場合はDateTimeFormatterBuilder
、そのappendPattern
方法を、同じように単一引用符を使用します。または、appendLiteral
代わりにそのメソッドを使用し、一重引用符は使用しないでください。
では、どのようにして一重引用符をフォーマットに入れるのでしょうか?2つの一重引用符が1つを生成します。二重一重引用符が一重引用符の中にあるかどうかは関係ありません。
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));
午前2時、太平洋夏時間
上記のすべてのフォーマッタは、解析にも使用できます。例えば:
LocalTime time = LocalTime.parse("16 43' 56\"", formatterWithSingleQuote);
System.out.println(time);
16:43:56
ザ・ SimpleDateFormat
この質問は、ほぼ10年前に頼まれたときに使用されるクラスは、悪名高い厄介と長い時代遅れです。代わりに、最新のJava日付と時刻APIであるjava.timeを使用することをお勧めします。それが私がまさにそれを示す理由です。
リンク
SimpleDateFormat
、いくつかの回答で使用されているクラスは、面倒で古くからあることで有名です。それを避けてください。代わりに、最新のJava日付と時刻APIであるjava.timeの使用を示すMarkJeronimusによる短い回答を使用してください。