|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SimpleDateFormat
Время создания: 08.01.2020 12:36
Раздел: INFO - Development - JAVA - Даты
Запись: wwwlir/Tetra/master/base/1576715981v3cm82pge5/text.html на raw.githubusercontent.com
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В Java имеется удобный класс SimpleDateFormat, который можно использовать для форматирования даты. В этой статье Вы найдете обзор парметров, принимаемых методами класса SimpleDateFormat, а также будут приведены результаты выполнения метода format с разнообразными параметрами. Приведем простой пример форматирования даты с использованием класса SimpleDateFormat: import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
*
* @author seostella.com
*/
public class SimpleDateFormatExample {
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
System.out.println("date: " + dateFormat.format( new Date() ) );
}
}
Если на компьютере локализацией по умолчанию является русская локализация, то в результате выполнения приведенного кода Вы увидите следующее: date: 2012.02.07 н.э. at 15:13:08 EET
Рассмотрим некоторые методы класса SimpleDateFormat. Для начала, у класса есть 4 конструктора: SimpleDateFormat()
// Создает SimpleDateFormat, используя паттерн времени и формат символов по умолчанию для текущей локализации
SimpleDateFormat(String pattern)
// Создает SimpleDateFormat, используя заданный паттерн времени и формат символов по умолчанию для текущей локализации
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
// Создает SimpleDateFormat, используя заданные паттерн времени и формат символов
SimpleDateFormat(String pattern, Locale locale)
// Создает SimpleDateFormat, используя заданный паттерн времени и формат символов по умолчанию для заданной локализации
Следующий пример демонстрирует работу всех четырех конструкторов: package simpledateformatexample;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
*
* @author seostella.com
*/
public class SimpleDateFormatExample {
public static void main(String[] args) {
Date currentDate = new Date();
SimpleDateFormat dateFormat = null;
dateFormat = new SimpleDateFormat();
System.out.println("Constructor 1: " + dateFormat.format( currentDate ) );
dateFormat = new SimpleDateFormat("dd MMMM");
System.out.println("Constructor 2: " + dateFormat.format( currentDate ) );
dateFormat = new SimpleDateFormat("dd MMMM", myDateFormatSymbols );
System.out.println("Constructor 3: " + dateFormat.format( currentDate ) );
dateFormat = new SimpleDateFormat("dd MMMM", Locale.ENGLISH);
System.out.println("Constructor 4: " + dateFormat.format( currentDate ) );
}
private static DateFormatSymbols myDateFormatSymbols = new DateFormatSymbols(){
@Override
public String[] getMonths() {
return new String[]{"января", "февраля", "марта", "апреля", "мая", "июня",
"июля", "августа", "сентября", "октября", "ноября", "декабря"};
}
};
}
Результатом выполнения этого кода будут следующие четыре строки: Constructor 1: 07.02.12 15:34
Constructor 2: 07 Февраль
Constructor 3: 07 февраля
Constructor 4: 07 February
Конструктор по умолчанию использует паттерн времени и формат символов по умолчанию для текущей локализации. То есть, для русской локализации стандартным паттерном времени является паттерн "dd.MM.yy HH:mm". Конструктор SimpleDateFormat(String pattern) принимает паттерн даты, в котором будет отдавать результат метод format(). В примере мы использовали паттерн "dd MMMM", который требует от format() вывести дату в следующем формате: "две цифры дня месяца" + "пробел" + "название месяца". В данном случае используется название месяца по умолчанию для текущей локализации, т.е., "Февраль". Конструктор SimpleDateFormat("dd MMMM", myDateFormatSymbols ) аналогичен предыдущему за исключением того, что название месяца используется не по умолчанию, а те, которые возвращает переменная myDateFormatSymbols. В свою очередь, в переменной myDateFormatSymbols мы переопределили метод getMonths() чтобы он возвращал названия месяцев с прописной буквы и в родительном падеже. Конструктор SimpleDateFormat("dd MMMM", Locale.ENGLISH) аналогичен конструктору SimpleDateFormat(String pattern), но использует заданную локализацию. В нашем случае это английская локализация Locale.ENGLISH. Рассмотрим подробно параметры, принимаемые классом SimpleDateFormat в качестве паттерна даты.
Рассмотрим несколько примеров паттернов даты и времени, которые представлены в официальной документации. Русская локализация:
Английская локализация:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Так же в этом разделе:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|