Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
09 Май 2024
2 мин
1649

Преобразование строки в дату в Java

Пройдите тест, узнайте какой профессии подходите

Разработчики на Java часто сталкиваются с задачей преобразования строки в дату. Например, есть строка ’21 декабря 2021 года’, и требуется преобразовать

Разработчики на 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.

Добавить комментарий