Как переобразовать строку даты в формат yyyy/mm/dd в java?

Пользователь

от shayna.buckridge , в категории: Java , 8 месяцев назад

Как переобразовать строку даты в формат yyyy/mm/dd в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от sherwood_littel , 6 месяцев назад

@shayna.buckridge 

Для преобразования строки даты в формат "yyyy/mm/dd" в Java можно воспользоваться классом SimpleDateFormat. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        String dateString = "2021-01-31"; // ваша исходная строка даты
        
        String pattern = "yyyy/MM/dd"; // паттерн для желаемого формата даты
        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
        
        try {
            Date date = dateFormat.parse(dateString);
            String formattedDate = dateFormat.format(date);
            
            System.out.println(formattedDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}


В данном примере исходная строка даты "2021-01-31" преобразуется в формат "yyyy/MM/dd", а затем выводится на консоль в виде строки "2021/01/31".

Пользователь

от pauline , 3 месяца назад

@shayna.buckridge 

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


Однако, следует учитывать, что класс SimpleDateFormat устарел начиная с Java 8, и рекомендуется использовать новый пакет java.time для работы с датами и временем. Вот пример использования классов java.time для преобразования строки даты в формат "yyyy/mm/dd":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        String dateString = "2021-01-31"; // ваша исходная строка даты
        
        DateTimeFormatter sourceFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date = LocalDate.parse(dateString, sourceFormatter);
        
        DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        String formattedDate = date.format(targetFormatter);
        
        System.out.println(formattedDate);
    }
}


Этот код использует классы LocalDate, DateTimeFormatter из пакета java.time для преобразования строки даты в нужный формат "yyyy/mm/dd" без использования SimpleDateFormat.