Подтвердить что ты не робот

Как форматировать LocalDate в строку?

У меня есть переменная LocalDate, называемая датой, когда я печатаю ее, отображает 1988-05-05 Мне нужно преобразовать ее, чтобы напечатать ее как 05.May 1988.Как это сделать?

4b9b3361

Ответ 1

SimpleDateFormat не будет работать, если он начнет с LocalDate, который является новым в Java 8. Из того, что я вижу, вам придется использовать DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html.

LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);

Это должно напечатать 05 мая 1988 года. Чтобы получить период после дня и до месяца, вам может потребоваться использовать "dd'.LLLL yyyy"

Ответ 2

Может быть коротким как:

LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));

Ответ 3

System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("dd.MMMM yyyy")));

Приведенный выше ответ показывает это на сегодня

Ответ 4

С помощью сообщений ProgrammersBlock я придумал это. Мои потребности немного отличались. Мне нужно было взять строку и вернуть ее как объект LocalDate. Мне был передан код, который использовал старый календарь и SimpleDateFormat. Я хотел сделать это немного более актуальным. Это то, что я придумал.

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;


    void ExampleFormatDate() {

    LocalDate formattedDate = null;  //Declare LocalDate variable to receive the formatted date.
    DateTimeFormatter dateTimeFormatter;  //Declare date formatter
    String rawDate = "2000-01-01";  //Test string that holds a date to format and parse.

    dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE;

    //formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.
    //First, the rawDate string is formatted according to DateTimeFormatter.  Second, that formatted string is parsed into
    //the LocalDate formattedDate object.
    formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));

}

Надеюсь, это поможет кому-то, если кто-нибудь увидит лучший способ выполнить эту задачу, добавьте свой вклад.

Ответ 5

LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));

Ex. Вы можете использовать любой тип даты: 1. дд/мм/гггг 2. дд/мм/гг 3. гггг/мм/дд

Ответ 6

Существует встроенный способ форматирования LocalDate

LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);

Удачного кодирования! :)

Ответ 7

Выбранный ответ не сработал у меня, поэтому я выполнил следующий метод

LocalDate localDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd'.LLLL yyyy");
String dateInStr = formatter.print(selectedDate);

Надеюсь, что это поможет другим.

Ответ 8

LocalDate date = LocalDate.now();//For reference
System.out.println(DateTimeFormat.longDate().print(date));
System.out.println(date.toString("dd.MMMM YYYY"));

Остерегайтесь, язык месяца зависит от языка или чего-то еще.

подробнее

Ответ 9

Довольно хороший способ сделать это - использовать SimpleDateFormat. Я покажу вам, как:

SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);

Я вижу, что у вас есть дата в переменной:

sdf.format(variable_name);

Приветствия.