Да, это позволяет что-то случиться. В примечании приводятся только примеры. Определение довольно ясно:
Неопределенное поведение: поведение, для которого настоящий международный стандарт не предъявляет требований.
blockquote>
Конечно, с помощью SimPledateFormat Вы можете включить литеральные строки:
в пределах строк даты и времени, беспрепятственные буквы от «a 'in' z» и от «a 'до' z» Интерпретируется как буквы шаблонов, представляющих компоненты даты или строки времени. Текст может быть указан, используя отдельные цитаты ('), чтобы избежать интерпретации. «« »представляет собой одну цитату. Все остальные персонажи не интерпретируются; Они просто скопированы в выходную строку во время форматирования или сопоставления против входной строки во время анализа.
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight 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
, Если Вы используете DateTimeFormatterBuilder
и appendPattern
метод, используйте одинарные кавычки таким же образом. Или используйте appendLiteral
метод вместо этого и никакие одинарные кавычки.
, Как мы помещаем одинарную кавычку в формат, тогда? Две одинарных кавычки производят тот. Это doesn’t имеют значение, является ли двойная одинарная кавычка внутренними одинарными кавычками или нет:
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-часовой AM, Тихоокеанское летнее время
Все средства форматирования выше могут использоваться для парсинга также. Например:
LocalTime time = LocalTime.parse("16 43' 56\"", formatterWithSingleQuote);
System.out.println(time);
16:43:56
SimpleDateFormat
класс, используемый, когда этот вопрос задали почти 10 лет назад, известно неприятен и длинный устаревший. Я рекомендую вместо этого использовать java.time, современный API даты и времени Java. Который является, почему я демонстрирую просто это.
DateTimeFormatter
java.text.simpledateformat
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
String formattedDate = formatter.format(date);
Вы получите подробнее Текст ссылки
Вы можете использовать String.format, как документально документировано в java.util.formatter :
Calendar c = ...;
String s = String.format("%tY year", c);
// -> s == "2010 year" or whatever the year actually is