Verification: a143cc29221c9be0

Mysql и php вывод даты дата в формате

Конструкторы

Класс Date способен поддерживать два конструктора:

Название Краткое описание
Date() Данный конструктор инициализирует объект с датой и временем на текущий момент.
Date(long millisec) Конструктор принимает аргумент = числу миллисекунд, истекших с полуночи 01.1970 года.

Методы класса Date

Название Краткое описание
boolean after(Date date) Если вызывающий объект date содержит дату, которая является раньше заданной, то возвращает значение true. В ином случае, возвращает значение false.
boolean before(Date date) Если вызывающий объект date содержит более раннюю дату, чем заданная, то класс возвращает значение true. В другом случае класс возвращает значение false.
Object clone() Дублирование вызывающего объекта date.
   
int compareTo(Date date) Класс сравнивает значение вызывающего объекта с этой датой. Если значения равны, то возвращает 0, если объект вызова более ранний, возвращает отрицательное значение, если объект позже даты, то возвращает положительное.
int compareTo(Object obj) Если вызываемый объект имеет класс Date, работает по такому же принципу, как и compareTo(Date). В иной ситуации вызывает ClassCastException.
boolean equals(Object date) Если вызывающий объект date содержит такое же время и дату, которая была указана в date, то возвращает значение true. Иначе класс возвращает значение false.
long getTime() Класс возвращает количество миллисекунд, начиная с 1 января 1970 г.
int hashCode() Класс возвращает хэш-код для объекта вызова.
void setTime(long time) Класс задает дату и времени, затраченное в миллисекундах от 1 января 1970 года.
String toString() Класс преобразует вызывающий объект в строку и возвращает результат.

Как получить текущую дату и время в Java

На самом деле, получить текущую дату и времени в Java не составит особого труда. Например, можно воспользоваться объектом date с методом toString(). Выглядеть это будет следующим образом:

import java.util.Date;

publicclassTest{

publicstaticvoidmain(String args[]){
// Инициализация объекта date
Date date = newDate();

// Вывод текущей даты и времени с использованием toString()
System.out.println(date.toString());
}
}

Сравнение дат

Сравнить даты в Java можно тремя способами:

  1. Функция getTime(). Ее можно использовать, чтобы получить количество миллисекунд, которые прошли с 1 января 1970 года, для обоих объектов, после чего сравнить эти показатели.
  2. Методы before(), after() и equals(). Например, new Date(99, 2, 12).before(new Date (99, 2, 18)). Поскольку 12 число раньше 18 числа месяца, то возвращает значение true.
  3. Метод compareTo(). Он определяется сопоставимым интерфейсом, а затем реализуется по дате.

Форматирование даты с помощью класса SimpleDateFormat

Воспользуйтесь классом для парсинга и форматирования даты для Java. Для форматирования даты и времени он позволяет начать с выбора разнообразных пользовательских шаблонов. Приведем пример:

import java.util.*;
importjava.text.*;

publicclassTest{

publicstaticvoidmain(String args[]){
Date dateNow = newDate();
SimpleDateFormat formatForDateNow = newSimpleDateFormat(«E yyyy.MM.dd ‘и время’ hh:mm:ss a zzz»);

System.out.println(«Текущая дата » + formatForDateNow.format(dateNow));
}
}

Получите результат текущей даты.

Формат-коды SimpleDateFormat

Чтобы задать формат даты и времени в Java, воспользуйтесь регулярными выражениями (строковым шаблоном) с датой и временем. Все буквы ASCII в данной модели зарезервированны как шаблон письма, определяющийся следующим образом:

Описание Символ Пример
Обозначение эры G н.э.
Год из четырех цифр y 2020
Номер месяца года M 12
Число месяца d 15
Формат часа в A.M./P.M.(1~12) h 8
Формат часа(0~23) H 20
Минуты m 40
Секунды s 30
Миллисекунды S 511
День недели E Вт
Номер дня в году D 350
Номер дня недели в месяце F 3 (третье воскресение в этом месяце)
Номер неделя в году w 51
Номер недели в месяце W 3
Маркер A.M./P.M. a AM
Формат часа(1~24) k 24
Формат часа в A.M./P.M.(0~11) K 0
Часовой пояс z FET (Дальневосточноевропейское время)
Выделение для текста Текст
Одинарная кавычка »

Форматирование даты с помощью метода printf

Также удобно и легко можно сделать формат даты и времени с помощью метода printf. Для этого нужно использовать формат 2-х букв, начиная с t и заканчивая одним из символов в приведенной ниже таблице:

import java.util.Date;

publicclassTest{

publicstaticvoidmain(String args[]){
// Инициализация объекта date
Date date = newDate();

// Вывод текущей даты и времени с использованием toString()
String str = String.format(«Текущая дата и время: %tc», date);

System.out.printf(str);
}
}

Получим следующий результат:

Текущая дата и время: Вт дек1520:55:59 FET 2020

Если бы приходилось несколько раз ставить дату для форматирования каждой части, то это было бы глупо. Поэтому формат строки может говорить про индекс аргумента для форматирования. При этом индекс должен следовать за % и заканчиваться $. Приведем пример:

import java.util.Date;

publicclassTest{

publicstaticvoidmain(String args[]){
// Инициализация объекта date
Date date = newDate();

// Вывод текущей даты с использованием toString()
System.out.printf(«%1$s %2$td %2$tB %2$tY», «Дата:», date);
}
}

Результат будет следующим:

Дата: 15 декабря 2020

К тому же, можно использовать <.>

import java.util.Date;

publicclassTest{

publicstaticvoidmain(String args[]){
// Инициализация объекта date
Date date = newDate();

// Вывод отформатированной даты (удалите знак = ниже из кода, а то у меня конфликтует этот код с html)
System.out.printf(«%s %te % }
}

Получим такой результат:

Сегодняшняя дата: 15 декабря2020

Символы преобразования даты и времени

Вывести время в необходимом в формате на Java можно с помощью специальных символов преобразования:

Описание Символ Пример
Текущее время и дата c Вт дек 15 20:58:27 FET 2020
Формат даты ISO 8601 (год-месяц-день) F 2020-12-15
Американский формат даты (месяц/день/год) D 12/19/20
24-часовой формат времени T 20:58:25
12-часовой формат времени r 20:58:25 AM
24-часовой формат времени без секунд R 20:58
Текущий год из четырех цифр (с ведущими нулями) Y 2020
Последние две цифры года (с ведущими нулями) y 20
Первые две цифры года (с ведущими нулями) C 20
Полное название месяца B Декабря
Сокращенное название месяца b дек
Номер текущего месяца (с ведущими нулями) m 12
Номер текущего дня месяца (с ведущими нулями) d 15
Номер текущего дня месяца (без ведущих нулей) e 15
Полное название текущего дня недели A Вторник
Сокращенное название дня недели a Вт
Количество дней с начала года (с ведущими нулями) j 318
Формат часа (с ведущими нулями), от 00 до 23 H 21
Формат часа (без ведущих нулей), от 0 до 23 k 21
Формат часа (с ведущими нулями), от 01 до 12 I 21
Формат часа (без ведущих нулей), от 1 до 12 l 21
Минуты (с ведущими нулями) M 58
Секунды (с ведущими нулями) S 25
Миллисекунды (с ведущими нулями) L 382
Наносекунды (с ведущими нулями) N 775000000
Верхний регистр маркера A.M./P.M. p (%Tp) AM
Нижний регистр маркера A.M./P.M. p (%tp) am
Часовое смещение RFC 822 по GMT z +0300
Часовой пояс Z FET
Секунды, начиная с 1970-01-01 00:00:00 GMT s 1608059134
Миллисекунды, начиная с 1970-01-01 00:00:00 GMT Q 16080591341000

Существует много других полезных классов, которые связаны с датой и времени. Чтобы узнать о них подробно, можете прибегнуть к стандартной документации Java.

Как преобразовать строку в дату

SimpleDateForma имеет дополнительные методы, в том числе и parse(), который поможет перевести строку в дату, соответствующую формату, хранящемуся в объекте SimpleDateFormat. Пример:

import java.util.*;
importjava.text.*;

publicclassTest{

publicstaticvoidmain(String args[]){
SimpleDateFormat ft = new SimpleDateFormat («yyyy-MM-dd»);
String str = args.length == 0 ?»2020-12-15″ : args[0];

System.out.print(«Строка » + str + » распаршена как «);
Date parsingDate;
try {
parsingDate = ft.parse(str);
System.out.println(parsingDate);
}catch (ParseException e) {
System.out.println(«Нераспаршена с помощью » + ft);
}
}
}

Результат будет следующим:

Строка 2020-12-15 распаршена как TuDec1500:00:00 FET 2020

Задержка по времени

Можно уменьшить или увеличить время работы программы на любой необходимый период: от 1 мс до срока эксплуатации вашего ПК. Приведем пример, где режим ожидания следующей программы будет 10 секунд:

import java.util.*;

publicclassTest{
publicstaticvoidmain(String args[]){
try {
System.out.println(newDate() + «\n»);
Thread.sleep(10000); // Замораживает весь поток на 10 секунд
System.out.println(newDate() + «\n»);
} catch (Exception e) {
System.out.println(«Получили исключение!»);
}
}
}

Получим следующий результат:

Tu Dec1522:42:16 FET 2020

Tu Dec1522:42:26 FET 2020

Вместо Thread.sleep() лучше использовать TimeUnit():

TimeUnit.NANOSECONDS.sleep(), TimeUnit.MICROSECONDS.sleep(), TimeUnit.MILLISECONDS.sleep(), TimeUnit.SECONDS.sleep(), TimeUnit.MINUTES.sleep(), TimeUnit.HOURS.sleep() или TimeUnit.DAYS.sleep().

Время выполнения программы

Достаточно просто можно узнать время выполнения кода программы посредством System.currentTimeMillis(). Просто запишите вначале программы в переменную значение System.currentTimeMillis(). Соответственно в конце нужно вычесть переменную System.currentTimeMillis() из текущего значения. Приведем пример, где будет измерена скорость работы кода программы, выводящая 10 рандомных чисел на экран:

import java.util.*;

publicclassTest{
publicstaticvoidmain(String args[]){
// Начала отсчета
long start = System.currentTimeMillis();

// Код программы. Получение 10 случайных чисел от 0 до 9 и вывод на экран
for(int i = 1;i System.out.println(«Случайное число №» + i + «: » + (int)(Math.random() * 10));
}

// Получение и запись в переменную timeWorkCode времени работы программы
long timeWorkCode = System.currentTimeMillis() — start;
// Вывод времени выполнения работы кода на экран
System.out.println(«Скорость выполнения программы: » + timeWorkCode + » миллисекунд»);
}
}

Результат выполнения кода:

Случайное число №1: 0
Случайное число №2: 5
Случайное число №3: 9
Случайное число №4: 9
Случайное число №5: 0
Случайное число №6: 2
Случайное число №7: 0
Случайное число №8: 3
Случайное число №9: 5
Случайное число №10: 9
Скорость выполнения программы: 2 миллисекунд

Разница дат в Java

В некоторых случаях, программисту нужно рассчитать разницу между датами, узнать точку во времени в мс. Давайте перепишем пример, который находится выше:

import java.util.*;

publicclassTest{

publicstaticvoidmain(String args[]){
try {
long start = System.currentTimeMillis();
System.out.println(newDate() + «\n»);

Thread.sleep(10000);
System.out.println(newDate() + «\n»);

long end = System.currentTimeMillis();
long diff = end — start;
System.out.println(«Разница между датами: » + diff + » миллисекунд»);
}catch (Exception e) {
System.out.println(«Получили исключение!»);
}
}
}

Результат выполнения кода:

Tu Dec1522:22:10 FET 2020

Tu Dec1522:22:20 FET 2020

Разница между датами: 10081 миллисекунд

Количество дней между датами

Также перед вами может стоять задача – рассчитать количество дней, часов, минут и так далее между датами. Приведем один из способов как найти дни между двумя датами:

import java.util.*;

publicclassTest{

publicstaticvoidmain(String args[]){
String date1 = «01.03.2016»;
String date2 = «01.02.2016»;

SimpleDateFormat format = new SimpleDateFormat(«dd.MM.yyyy»);

Date dateOne = null;
Date dateTwo = null;

try {
dateOne = format.parse(date1);
dateTwo = format.parse(date2);
} catch (Exception e) {
e.printStackTrace();
}

// Количество дней между датами в миллисекундах
long difference = dateOne.getTime() — dateTwo.getTime();
// Перевод количества дней между датами из миллисекунд в дни
int days = (int)(difference / (24 * 60 * 60 * 1000)); // миллисекунды / (24ч * 60мин * 60сек * 1000мс)
// Вывод разницы между датами в днях на экран
System.out.println(days + » дн.»);
}
}

Получим следующий результат:

29 дн.