Разработчики на Java часто сталкиваются с задачей преобразования строки в дату. Например, есть строка ’21 декабря 2021 года’, и требуется преобразовать ее в экземпляр класса Date
.
Преобразование такого рода обычно выполняется с помощью класса SimpleDateFormat
из библиотеки Java. Этот класс позволяет задать шаблон даты и времени, а затем использовать его для преобразования строки в дату.
Пример
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) throws Exception { String strDate = "21 декабря 2021 года"; SimpleDateFormat format = new SimpleDateFormat("d MMMM yyyy года"); Date date = format.parse(strDate); System.out.println(date); } }
В этом примере используется шаблон "d MMMM yyyy года"
, который соответствует формату строки даты.
Разбиение даты на составляющие
После того, как строка была преобразована в дату, можно разбить ее на составляющие — день, месяц и год. Для этого можно воспользоваться следующими методами класса Date
:
getDate()
— возвращает день месяцаgetMonth()
— возвращает месяц (начиная с 0, т.е. январь — это 0, февраль — 1, и т.д.)getYear()
— возвращает год (с учетом смещения 1900 годов, т.е. 2021 год возвращается как 121)
Пример
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) throws Exception { String strDate = "21 декабря 2021 года"; SimpleDateFormat format = new SimpleDateFormat("d MMMM yyyy года"); Date date = format.parse(strDate); System.out.println("День: " + date.getDate()); System.out.println("Месяц: " + date.getMonth()); System.out.println("Год: " + (1900 + date.getYear())); } }
Преобразование даты в миллисекунды
Если требуется преобразовать дату в миллисекунды (например, для сравнения дат), можно использовать метод getTime()
класса Date
.
Пример
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) throws Exception { String strDate = "21 декабря 2021 года"; SimpleDateFormat format = new SimpleDateFormat("d MMMM yyyy года"); Date date = format.parse(strDate); long millis = date.getTime(); System.out.println("Миллисекунды: " + millis); } }
Таким образом, преобразование строки в дату в Java выполняется с помощью класса SimpleDateFormat
, а разбиение даты на составляющие и преобразование в миллисекунды — с помощью методов класса Date
.
Добавить комментарий