Может ли кто-нибудь сообщить мне о форматах даты, доступных в классе SimpleDateFormat.
Я просмотрел api, но не смог найти удовлетворительного ответа. Любая помощь будет высоко оценена.
Форматы даты и времени хорошо описаны ниже
SimpleDateFormat (Java Platform SE 7) - шаблоны даты и времени
Существует n
количество форматов, которые вы можете сделать. Например - dd/MM/yyyy
или YYY-'W'ww-u
или вы можете смешивать и сочетать буквы, чтобы получить требуемый шаблон. Буквы шаблона следующие.
G
- обозначение эры (AD)y
- год (1996; 96)Y
- неделя года (2009; 09)M
- Месяц в году (июль; Jul; 07)w
- Неделя в году (27)W
- Неделя в месяце (2)D
- День в году (189)d
- День в месяце (10)F
- День недели в месяце (2)E
- Название дня недели (вторник; Tue)u
- номер дня недели (1 = понедельник, ..., 7 = воскресенье)a
- маркер AM/PMH
- Час в сутках (0-23)k
- Час в сутках (1-24)K
- Час в am/pm (0-11)h
- Час в am/pm (1-12)m
- Минута в часе (30)s
- Секунда в минуте (55)S
- Миллисекунда (978)z
- Общий часовой пояс (Pacific Standard Time; PST; GMT-08:00)Z
- часовой пояс RFC 822 (-0800)X
- часовой пояс ISO 8601 (-08; -0800; -08:00)Чтобы разобрать:
2000-01-23T04:56:07.000+0000
Использовать:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
.
Позвольте мне привести несколько примеров кода, которые я взял с сайта http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html. Затем вы можете поиграть с различными опциями, пока не поймете их.
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date now = new Date();
//This is just Date's toString method and doesn't involve SimpleDateFormat
System.out.println("toString(): " + now); // dow mon dd hh:mm:ss zzz yyyy
//Shows "Mon Oct 08 08:17:06 EDT 2012"
SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z");
System.out.println("Format 1: " + dateFormatter.format(now));
// Shows "Mon, 2012-10-8 at 8:17:6 AM EDT"
dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Format 2: " + dateFormatter.format(now));
// Shows "Mon 2012.10.08 at 08:17:06 AM EDT"
dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy");
System.out.println("Format 3: " + dateFormatter.format(now));
// Shows "Monday, October 8, 2012"
// SimpleDateFormat can be used to control the date/time display format:
// E (day of week): 3E or fewer (in text xxx), >3E (in full text)
// M (month): M (in number), MM (in number with leading zero)
// 3M: (in text xxx), >3M: (in full text full)
// h (hour): h, hh (with leading zero)
// m (minute)
// s (second)
// a (AM/PM)
// H (hour in 0 to 23)
// z (time zone)
// (there may be more listed under the API - I didn't check)
}
}
Удачи!
проверьте форматы здесь http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
главная
System.out.println("date : " + new classname().getMyDate("2014-01-09 14:06", "dd-MMM-yyyy E hh:mm a z", "yyyy-MM-dd HH:mm"));
метод
public String getMyDate(String myDate, String returnFormat, String myFormat)
{
DateFormat dateFormat = new SimpleDateFormat(returnFormat);
Date date=null;
String returnValue="";
try {
date = new SimpleDateFormat(myFormat, Locale.ENGLISH).parse(myDate);
returnValue = dateFormat.format(date);
} catch (ParseException e) {
returnValue= myDate;
System.out.println("failed");
e.printStackTrace();
}
return returnValue;
}
Обновление
Другие вопросы устарели. Жуткое наследие классов, таких как класса simpledateformat
были вытеснены лет назад современный Ява.время классы.
Для определения ваши собственные пользовательские шаблоны форматирования, коды в datetimeformatter с
подобны, но не точно так же, как коды В класса simpledateformat
. Будьте уверены, чтобы изучить документацию. Поиск переполнения стека для многих примеров.
DateTimeFormatter f =
DateTimeFormatter.ofPattern(
"dd MMM uuuu" ,
Locale.ITALY
)
;
В стандарте ISO 8601 стандарт определяет форматы для многих типов значений даты-времени. Эти форматы предназначены для обмена данными, будучи легко обрабатывается машиной, а также легко читать как люди в разных культурах.
В Ява.время классы используют форматы ISO 8601 по умолчанию при генерации/разбора строк. Просто назвать метод toString
& методов анализа
. Не нужно указывать шаблон форматирования.
Instant.now().toString()
2018-11-05T18:19:33.017554 з
Значение в формате UTC, Z на конце означает, мирового, и произносится как “Зулу”.
А не указать шаблон форматирования, вы можете позволить Ява.время автоматически локализовать для вас. Используйте datetimeformatter с.локальная...` методы.
Получаем текущий момент с настенных часов используется людьми из определенного региона (часового пояса).
ZoneId z = ZoneId.of( "Africa/Tunis" );
ZonedDateTime zdt = ZonedDateTime.now( z );
Генерировать текст в стандарте ИСО 8601 мудро расширенных добавить имя часового пояса в квадратных скобках.
ЗДТ.метод toString(): 2018-11-05T19:20:23.765293+01:00[Африка/Тунис]
Создание автоматического локализованный текст.
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale );
String output = zdt.format( f );
выход: лунди 5 ноября 2018 à 19:20:23 юр Нормаль д'Эроп Централ
Как правило, рекомендуется для автоматического локализации, а не мучиться с жестко закодированные шаблоны форматирования.
В [Ява.время] основы(http://docs.oracle.com/javase/10/docs/api/java/time/package-summary.html) построен в Java 8 и выше. Эти классы вытеснить хлопотно старый наследие Дата Время классы, такие как Ява.утиль.Даты
, календарь
, & класса simpledateformat
.
В Joda времени проекта, теперь в режиме техническое обслуживание, советует миграции Ява.время классы.
Чтобы узнать больше, см. учебник по Oracle. Поиск переполнения стека для многих примеров и объяснений. Спецификация в JSR 310.
Вы можете обменять Ява.время объекты непосредственно с вашей базой данных. Использовать [драйвера] совместимый(https://en.wikipedia.org/wiki/jdbc_driver) с с JDBC 4.2 или позже. Нет необходимости для строк, нет необходимости в Ява.для SQL.*
классов.
Где получить Ява.классы время?
В ThreeTen-Экстра проект расширяется Java.время дополнительных занятий. Этот проект является полигоном для возможных будущих дополнений к Java.время. Вы можете найти некоторые полезные классы, такие как интервал
, YearWeek
, YearQuarter
, и подробнее.