Преобразование форматов дат в Java
При работе с датами и временем в Java часто возникает необходимость преобразования между разными форматами дат. Java предоставляет несколько способов для этого, в том числе использование класса java.text.SimpleDateFormat и пакета java.time.
Класс java.text.SimpleDateFormat позволяет разбирать и форматировать строки с датами и временем с использованием заданного шаблона. Вот пример того, как преобразовать строку с датой из одного формата в другой:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatConverter {
public static void main(String[] args) {
String dateString = "2023-04-24 15:30:00";
String inputFormat = "yyyy-MM-dd HH:mm:ss";
String outputFormat = "MM/dd/yyyy hh:mm a";
try {
SimpleDateFormat inputFormatter = new SimpleDateFormat(inputFormat);
SimpleDateFormat outputFormatter = new SimpleDateFormat(outputFormat);
Date date = inputFormatter.parse(dateString);
String formattedDate = outputFormatter.format(date);
System.out.println("Input date: " + dateString);
System.out.println("Formatted date: " + formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Использование пакета java.time
Пакет java.time, введенный в Java 8, предоставляет более надежный и гибкий способ работы с датами и временем. Вот пример того, как преобразовать объект LocalDateTime в другой формат:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateFormatConverter {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.of(2023, 4, 24, 15, 30, 0);
String inputFormat = "yyyy-MM-dd HH:mm:ss";
String outputFormat = "MM/dd/yyyy hh:mm a";
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(inputFormat);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputFormat);
String formattedDate = dateTime.format(outputFormatter);
System.out.println("Input date: " + dateTime.format(inputFormatter));
System.out.println("Formatted date: " + formattedDate);
}
}
Оба примера демонстрируют, как преобразовать форматы дат и времени в Java, используя либо класс SimpleDateFormat, либо пакет java.time.