java.time
Mark Jeronimus já disse isso . Estou desenvolvendo um pouco mais. Basta colocar o texto a ser impresso literalmente entre aspas simples.
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));
Resultado ao executar agora:
2010 year
2010 year
2019 year
Se você estiver usando a DateTimeFormatterBuilder
e seu appendPattern
método, use aspas simples da mesma maneira. Ou use seu appendLiteral
método, sem aspas simples.
Como colocamos aspas simples no formato, então? Duas aspas simples produzem uma. Não importa se as aspas simples duplas estão entre aspas simples ou não:
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));
02 horas da manhã, horário de verão do Pacífico
Todos os formatadores acima também podem ser usados para análise. Por exemplo:
LocalTime time = LocalTime.parse("16 43' 56\"", formatterWithSingleQuote);
System.out.println(time);
16:43:56
A SimpleDateFormat
classe usada quando essa pergunta foi feita há quase 10 anos é notoriamente problemática e há muito desatualizada. Eu recomendo que você use java.time, a API moderna de data e hora do Java. É por isso que demonstro exatamente isso.
Links
SimpleDateFormat
classe usada em algumas das respostas é notoriamente problemática e há muito desatualizada. Evite isso. Em vez disso, use a resposta curta de Mark Jeronimus, demonstrando o uso de java.time, a moderna API Java de data e hora .