Формат даты Java - включая дополнительные символы - PullRequest
70 голосов
/ 26 января 2010

Есть ли эквивалентность форматированию в стиле php date () в Java? Я имею в виду, что в php я могу использовать символы обратной косой черты, чтобы они рассматривались буквально. То есть гггг \ у \ е \ а \ г станет 2010 год . Я не нашел ничего подобного в Java, все примеры имеют дело только со встроенными форматами даты.

В частности, я имею дело с JCalendar датчиками и их dateFormatString свойством.

Мне это нужно, потому что в моей локали требуется писать всевозможные дополнительные материалы в формате даты, например, d. (за день) после части дня, м.б. (в течение многих лет) после нескольких лет и так далее. В худшем случае я мог бы использовать замену строки или регулярное выражение, но, может быть, есть более простой способ? Заранее спасибо!

Ответы [ 4 ]

133 голосов
/ 26 января 2010

Конечно, с SimpleDateFormat вы можете включать буквенные строки:

В строках шаблонов даты и времени буквы без кавычек от 'A' до 'Z' и от 'a' до 'z' интерпретируются как буквы шаблона, представляющие компоненты строки даты или времени. Текст может быть заключен в кавычки ('), чтобы избежать интерпретации. «» обозначает одну кавычку. Все остальные символы не интерпретируются; они просто копируются в выходную строку во время форматирования или сопоставляются с входной строкой во время синтаксического анализа.

 "hh 'o''clock' a, zzzz"    12 o'clock PM, Pacific Daylight Time
11 голосов
/ 05 апреля 2018

Просто для полноты, Java 8 DateTimeFormatter также поддерживает это:

DateTimeFormatter.ofPattern("yyyy 'year'");
7 голосов
/ 26 января 2010

Вы можете использовать String.format, как описано в java.util.Formatter :

Calendar c = ...;
String s = String.format("%tY year", c);
// -> s == "2010 year" or whatever the year actually is
0 голосов
/ 26 января 2010

java.text.SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
String formattedDate = formatter.format(date);

Вы получите больше информации здесь текст ссылки

...