У меня есть переменная LocalDate, называемая датой, когда я печатаю ее, отображает 1988-05-05 Мне нужно преобразовать ее, чтобы напечатать ее как 05.May 1988.Как это сделать?
Как форматировать LocalDate в строку?
Ответ 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);
Приветствия.