Как изменить формат даты в Java? [duplicate]

На этот вопрос уже есть ответ здесь:

Мне нужно изменить формат даты с помощью Java с

 dd/MM/yyyy  to yyyy/MM/dd
51
задан Robert Karl 19 June 2014 в 21:40
поделиться

4 ответа

Как преобразовать один формат даты в другой с помощью SimpleDateFormat :

final String OLD_FORMAT = "dd/MM/yyyy";
final String NEW_FORMAT = "yyyy/MM/dd";

// August 12, 2010
String oldDateString = "12/08/2010";
String newDateString;

SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
Date d = sdf.parse(oldDateString);
sdf.applyPattern(NEW_FORMAT);
newDateString = sdf.format(d);
126
ответ дан 7 November 2019 в 09:44
поделиться
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
sdf.format(new Date());

Это должно помочь

24
ответ дан 7 November 2019 в 09:44
поделиться

Используйте SimpleDateFormat

    String DATE_FORMAT = "yyyy/MM/dd";
    SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
    System.out.println("Formated Date " + sdf.format(date));

Полный пример:

import java.text.SimpleDateFormat;
import java.util.Date;

public class JavaSimpleDateFormatExample {
    public static void main(String args[]) {
        // Create Date object.
        Date date = new Date();
        // Specify the desired date format
        String DATE_FORMAT = "yyyy/MM/dd";
        // Create object of SimpleDateFormat and pass the desired date format.
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
        /*
         * Use format method of SimpleDateFormat class to format the date.
         */
        System.out.println("Today is " + sdf.format(date));
    }
}
9
ответ дан 7 November 2019 в 09:44
поделиться

Или вы можете пойти по маршруту регулярных выражений:

String date = "10/07/2010";
String newDate = date.replaceAll("(\\d+)/(\\d+)/(\\d+)", "$3/$2/$1");
System.out.println(newDate);

Он также работает в обоих направлениях. Конечно, на самом деле это не подтвердит вашу дату, а также будет работать для таких строк, как «21432/32423/52352». Вы можете использовать "(\\ d {2}) / (\\ d {2}) / (\\ d {4}" , чтобы быть более точным в количестве цифр в каждой группе, но он будет работать только от dd / MM / yyyy до yyyy / MM / dd, а не наоборот (и по-прежнему принимает недопустимые числа, например 45). И если вы дадите ему что-то недопустимое, например "blabla", он просто вернется то же самое назад.

1
ответ дан 7 November 2019 в 09:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: