Spec-Zone .ru
спецификации, руководства, описания, API
След: Интернационализация
Урок: Форматирование
Раздел: Даты и Времена
Настройка Форматов
Домашняя страница > Интернационализация > Форматирование

Настройка Форматов

Предыдущий раздел, Используя Предопределенные Форматы, описал стили форматирования, обеспеченные DateFormat class. В большинстве случаев эти предопределенные форматы соответствуют. Однако, если Вы хотите создать свои собственные специализированные форматы, можно использовать SimpleDateFormat class.

Примеры кода, которые следуют, демонстрируют методы SimpleDateFormat class. Можно счесть полный исходный код для примеров в файле названным SimpleDateFormatDemo.

Об Образцах

Когда Вы создаете a SimpleDateFormat объект, Вы определяете образец String. Содержание образца String определите формат даты и время. Для полного описания синтаксиса образца см. таблицы в Синтаксисе Образца Формата Даты.

Следующий код форматирует дату и время согласно образцу String переданный к SimpleDateFormat конструктор. String возвращенный format метод содержит отформатированную дату и время, которые должны быть выведены на экран.

Date today;
String output;
SimpleDateFormat formatter;

formatter = new SimpleDateFormat(pattern, currentLocale);
today = new Date();
output = formatter.format(today);
System.out.println(pattern + " " + output);

Следующая таблица показывает вывод, сгенерированный предыдущим примером кода когда США. Locale определяется:

Специализированные Форматы Даты и Времени
Образец Вывод
dd. MM.yy 30.06.09
yyyy. Г MM.dd 'в' hh:mm:ss z 30.06.2009 AD в 8:29:36 PDT
EEE, MMM d, ''yy Вторник, 30 июня, '09
h:mm a 20:29
H:mm 8:29
H:mm:ss:SSS 8:28:36:249
K:mm a, z 8:29, PDT
yyyy. MMMMM.dd GGG hh:mm aaa 2009. 8:29 AD в июне 30

Образцы и Локаль

SimpleDateFormat class чувствителен к локали. Если Вы инстанцируете SimpleDateFormat без a Locale параметр, это отформатирует дату и время согласно значению по умолчанию Locale. И образец и Locale определите формат. Для того же самого образца, SimpleDateFormat может отформатировать дату и время по-другому если Locale изменяется.

В примере кода, который следует, образец является hardcoded в операторе, который создает SimpleDateFormat объект:

Date today;
String result;
SimpleDateFormat formatter;

formatter = new SimpleDateFormat("EEE d MMM yy", currentLocale);
today = new Date();
result = formatter.format(today);
System.out.println("Locale: " + currentLocale.toString());
System.out.println("Result: " + result);

Когда currentLocale устанавливается в различные значения, предыдущий пример кода генерирует этот вывод:

Locale: fr_FR
Result: mar. 30 juin 09
Locale: de_DE
Result: Di 30 Jun 09
Locale: en_US
Result: Tue 30 Jun 09

Синтаксис Образца Формата даты

Можно разработать свои собственные образцы формата для дат и времена от списка символов в следующей таблице:

Символ Значение Представление Пример
Г указатель эры Текст AD
y год Число 2009
М. месяц в году Текст & Число Июль & 07
d день в месяце Число 10
h час в/пополудни (1-12) Число 12
H час в день (0-23) Число 0
м. минута в час Число 30
s второй в минуту Число 55
S миллисекунда Число 978
E день на неделе Текст Во вторник
D день в году Число 189
F день недели в месяце Число 2 (2-ой Wed в июле)
w неделя в году Число 27
W неделя в месяце Число 2
a /пополудни маркер Текст PM
k час в день (1-24) Число 24
K час в/пополудни (0-11) Число 0
z часовой пояс Текст Тихоокеанское время
' escape для текста Разделитель (ни один)
' одинарная кавычка Литерал '

Символы, которые не являются буквами, обрабатываются как заключенный в кавычки текст. Таким образом, они появятся в отформатированном тексте, даже если они не будут включены в пределах одинарных кавычек.

Число букв символа, которые Вы определяете также, определяет формат. Например, если "zz" результаты образца в "PDT", то "zzzz" образец генерирует "Тихоокеанское Летнее время." Следующая таблица суммирует эти правила:

Представление Число Символов Результат
Текст 1 - 3 сокращенная форма, если Вы существуете
Текст >= 4 полная форма
Число минимальное число цифр требуется более короткие числа дополняются нулями (в течение года, если количество 'y' 2, то год является усеченным к 2 цифрам),
Текст & Число 1 - 2 форма числа
Текст & Число 3 текстовая форма

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Используя Предопределенные Форматы
Следующая страница: Изменение Символов Формата Даты