У меня есть переменная LocalDate с именем date, при печати она отображает 1988-05-05 Мне нужно преобразовать это, чтобы напечатать как 05.May 1988. Как это сделать?
Посмотрите на класс DateTimeFormatter . Там даже есть примеры того, как конвертировать в и из Strings.
azurefrog
2
Вы должны показать какой-то код, что вы уже пробовали и что не работает, чтобы люди могли вам помочь.
bvidal
Я пытался это сделать, но из-за этой надоедливой вещи «она не соответствует нашим стандартам качества», от которой я наконец отказался, мне потребовалось 15 минут, чтобы опубликовать это, потому что я должен был исправить «i» с «I».
Большое спасибо, это помогает, но с 'LLLL' не удалось показать название месяца, но с 'MMMM' я нашел это странным, поскольку даже в документации сказано иначе. Но еще раз спасибо за помощь ,
Яско
2
Теперь localDate.format (форматтер); не работает вообще
С помощью постов ProgrammersBlock я придумал это. Мои потребности были немного другими. Мне нужно было взять строку и вернуть ее как объект LocalDate. Мне передали код, который использовал более старый Календарь и SimpleDateFormat. Я хотел сделать это немного более актуальным. Это то, что я придумал.
import java.time.LocalDate;import java.time.format.DateTimeFormatter;voidExampleFormatDate(){LocalDate formattedDate =null;//Declare LocalDate variable to receive the formatted date.DateTimeFormatter dateTimeFormatter;//Declare date formatterString 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));}
Надеюсь, это кому-нибудь поможет, если кто-то видит лучший способ сделать это, пожалуйста, добавьте свой вклад.
Я вижу лучший способ: просто LocalDate.parse(rawDate)! String.formatздесь используется в совершенно неправильной форме, фактически просто возвращает первую строку; DateTimeFormatterне используется вовсе; parseэто staticметод LocalDate; formattedDateэто не отформатированная дата, даже не String(как предложено в вопросе)
user85421
0
Существует встроенный способ форматирования LocalDate для JODA lib
@ Эдвард, если это не так, пожалуйста, докажите это и предложите решение, которое вы считаете лучшим.
Иной
1
Вы хотите, чтобы я доказал, что LocalDate.toString (шаблон String) НЕ существует? Пожалуйста, предоставьте ссылку на этот метод, если он существует - я не смог найти его ни в одном javadocs. Что касается решения, этот вопрос уже есть.
Эдвард
@ Эдвард, похоже, тебе трудно найти его. Обновил мой ответ.
Иной
Joda Time не является «встроенным». OP, кажется, использует java.time.LocalDate, а не joda.time
Эдвард
-11
Довольно хороший способ сделать это - использовать, SimpleDateFormatя покажу вам, как:
SimpleDateFormat sdf =newSimpleDateFormat("d MMMM YYYY");Date d =newDate();
sdf.format(d);
String
s.Ответы:
SimpleDateFormat не будет работать, если он начинает с LocalDate, который является новым в Java 8. Из того, что я вижу, вы должны будете использовать DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ время / формат / DateTimeFormatter.html .
Это должно быть напечатано 05 мая 1988 года. Чтобы получить период после дня и до месяца, вам, возможно, придется использовать «dd'.LLLL yyyy»
источник
Может быть коротким как:
источник
Приведенный выше ответ показывает это на сегодня
источник
С помощью постов ProgrammersBlock я придумал это. Мои потребности были немного другими. Мне нужно было взять строку и вернуть ее как объект LocalDate. Мне передали код, который использовал более старый Календарь и SimpleDateFormat. Я хотел сделать это немного более актуальным. Это то, что я придумал.
Надеюсь, это кому-нибудь поможет, если кто-то видит лучший способ сделать это, пожалуйста, добавьте свой вклад.
источник
LocalDate.parse(rawDate)
!String.format
здесь используется в совершенно неправильной форме, фактически просто возвращает первую строку;DateTimeFormatter
не используется вовсе;parse
этоstatic
методLocalDate
;formattedDate
это не отформатированная дата, даже неString
(как предложено в вопросе)Существует встроенный способ форматирования LocalDate для JODA lib
Если у вас его еще нет - добавьте это в build.gradle:
Удачного кодирования! :)
источник
Довольно хороший способ сделать это - использовать,
SimpleDateFormat
я покажу вам, как:Я вижу, что у вас есть дата в переменной:
Приветствия.
источник
LocalDate
экземпляра в определенном формате. Как могSimpleDateFormat
помочь ему здесь?