Какие форматы дат доступны в классе SimpleDateFormat?

Может ли кто-нибудь сообщить мне о форматах даты, доступных в классе SimpleDateFormat.

Я просмотрел api, но не смог найти удовлетворительного ответа. Любая помощь будет высоко оценена.

Комментарии к вопросу (2)
Решение

Форматы даты и времени хорошо описаны ниже

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/PM
  • H - Час в сутках (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");.

Комментарии (6)

Позвольте мне привести несколько примеров кода, которые я взял с сайта 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)

   }

}

Удачи!

Комментарии (0)

проверьте форматы здесь 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;
            }
Комментарии (0)

и Java.время

Обновление

Другие вопросы устарели. Жуткое наследие классов, таких как класса simpledateformat были вытеснены лет назад современный Ява.время классы.

Таможня

Для определения ваши собственные пользовательские шаблоны форматирования, коды в datetimeformatter с подобны, но не точно так же, как коды В класса simpledateformat. Будьте уверены, чтобы изучить документацию. Поиск переполнения стека для многих примеров.

DateTimeFormatter f = 
    DateTimeFormatter.ofPattern( 
        "dd MMM uuuu" , 
        Locale.ITALY 
    ) 
;

Стандарте ISO 8601

В стандарте 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, и подробнее.

Комментарии (0)