SimpleDateFormat — это класс, решающий проблему формата времени.
SimpleDateFormat — это конкретный класс для форматирования и анализа дат в зависимости от локали. Он позволяет форматировать (дата->текст), анализировать (текст->дата) и нормализовать. SimpleDateFormat позволяет выбрать любой определяемый пользователем шаблон формата даты и времени.
Шаблоны даты и времени Форматы даты и времени задаются строками шаблонов даты и времени. В строках шаблонов даты и времени буквы без кавычек от «A» до «Z» и от «a» до «z» интерпретируются как буквы шаблона и используются для представления элементов строки даты или времени. Текст может быть заключен в одинарные кавычки ('), чтобы избежать интерпретации. «'» представляет собой одинарную кавычку. Все остальные символы не интерпретируются; они просто копируются в выходную строку во время форматирования или сопоставляются с входной строкой во время анализа.
Определены следующие буквы шаблона (все остальные символы от «A» до «Z» и от «a» до «z» зарезервированы):
пример представления элемента даты или времени в виде буквы
G Идентификатор эпохи Текст AD
Год и год 1996;
M месяц в году Месяц Июль 07;
w Количество недель в году Число 27
W Количество недель в месяце Число 2
D Количество дней в году Число 189
d Количество дней в месяце Число 10
F Неделя месяца Номер 2
E День недели Текст Вторник;
Текст маркера утра/вечера после полудня
H Час дня (0-23) Число 0
k Час дня (1-24) Число 24
Количество часов в K am/pm (0-11) Число 0
h Час в am/pm (1-12) Число 12
м Количество минут в часе Число 30
с Секунды в минутах Число 55
S Количество миллисекунд Число 978
z Часовой пояс Общий часовой пояс Тихоокеанское стандартное время GMT-08:00;
Часовой пояс Z Часовой пояс RFC 822 -0800
В следующем примере показано, как интерпретировать шаблоны даты и времени в локали США. Указанные дата и время: 2001-07-04 12:08:56 по местному времени в Тихоокеанском часовом поясе США.
Результаты шаблона даты и времени
«гггг.ММ.дд G 'at' ЧЧ:мм:сс z» 2001.07.04 AD в 12:08:56 PDT
«ЭЭЭ, МММ д, ''гг» Ср, 4 июля 2001 г.
"ч:мм а" 12:08
«hh 'o''clock' a, zzz» 12 часов по тихоокеанскому летнему времени.
«K:mm a, z» 13:08, тихоокеанское время.
«гггг.ММММ.дд ГГГ чч:мм ааа» 02001.Июль.04 AD 12:08
«EEE, d MMM гггг ЧЧ:мм:сс Z» Ср, 4 июля 2001 г. 12:08:56 -0700
"ггММддЧЧммссZ" 010704120856-0700
"гггг-ММ-дд'Т'ЧЧ:мм:сс.СССЗ" 2001-07-04T12:08:56.235-0700
Практические примеры применения SimpleDateFormat в программировании:
(1) Форматирование (Дата->Текст)
Обычно дата и время на китайском языке: 20070719 20:29:30.
SimpleDateFormat formater = new SimpleDateFormat("ггггММдд чч:мм:сс");
System.out.println("Дата в строку "+formater.format(новая дата()));
Подобные распространенные формы включают ггММдд чч:мм:сс гггг-ММ-дд чч:мм:сс дд-ММ-гггг чч:мм:сс.
Но стоит отметить, что у этого формата (19JUL07) и подобных ему форм есть небольшая хитрость 19JUL07.
Форматер SimpleDateFormat = новый SimpleDateFormat("ddMMMyy",,new Locale("US"))
System.out.println("Дата в строку "+formater.format(new Date()).toUpperCase());
Поскольку он на английском языке, следует использовать параметр объекта Locale, в противном случае используется локальный языковой стандарт по умолчанию.
(2) Анализ (Текст->Дата)
Вообще говоря, вы можете использовать любую форму даты и времени, а также текстовые параметры, чтобы получить время в нужном формате. Например, 2007-7-19 вернет объект времени типа java.util.Date и часы. , минуты и секунды будут заполнены нулями.
formater = new SimpleDateFormat("ггггМММдд",new Locale("США"));
пытаться...{
System.out.println("Строка даты "+formater.parse("2007sep01"));
} catch (ParseException e) ...{
е.printStackTrace();
}
В частности,
formater = new SimpleDateFormat("ггггМММдд",new Locale("США"));
пытаться...{
System.out.println("Строка даты "+formater.parse("2007sep01"));
} catch (ParseException e) ...{
е.printStackTrace();
}
Он также возвращает объект даты типа java.util.Date с часами, минутами и секундами, дополненными нулями.
(3) Текст -> Метка времени, Дата -> Метка времени
Временная метка т;
Формат SimpleDateFormat = new SimpleDateFormat("гггг-ММ-дд чч:мм:сс");
пытаться...{
t = новая отметка времени(format.parse("2007-07-19 00:00:00").getTime());
} catch (ParseException e) ...{
е.printStackTrace();
}
Временная метка т;
Формат SimpleDateFormat = new SimpleDateFormat("гггг-ММ-дд чч:мм:сс");
t = новая отметка времени (новая дата().getTime