Bir dize LocalDate
nasıl dönüştürebilirim?Yerel dize için dize
ben gibi örnekler gördük:
LocalDate dt = new LocalDate("2005-11-12");
Ama dizeleri gibidir: Sen LOCALDATE için DateTime gitmek gerekebilir
2005-nov-12
Bir dize LocalDate
nasıl dönüştürebilirim?Yerel dize için dize
ben gibi örnekler gördük:
LocalDate dt = new LocalDate("2005-11-12");
Ama dizeleri gibidir: Sen LOCALDATE için DateTime gitmek gerekebilir
2005-nov-12
, sen DateTimeFormatter
kullanmalısınız:
final DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);
Java 8 veya üstü kullanıyorsanız, o zaman org.joda.time.format.DateTimeFormatter class
tarafından gerçekleştirilir hertzi's answer
. Eğer Joda Zaman kullanırken
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("yyyy-MMM-dd");
DateTime dateTime = FORMATTER.parseDateTime("2005-nov-12");
LocalDate localDate = dateTime.toLocalDate();
Teşekkürler. Kullanıcının 3 harfli ay aramasına rağmen DateTimeFormatter.parseLocalDate() işlevini kullanmak için LocalDate.parse ve DateTimeFormatter.parseLocalDate öğesinden – thedarklord47
tarih saat biçimlendirme bakın . Üç sınıf biçimlendiricileri oluşturmak için fabrika yöntemlerini sağlar ve bu birdir. Diğerleri ISODateTimeFormat
ve DateTimeFormatterBuilder
'dur.
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MMM-dd");
LocalDate lDate = new LocalDate().parse("2005-nov-12",format);
final org.joda.time.LocalDate class
bir zaman diliminde olmayan bir tarih temsil değişmez bir tarih saat sınıfıdır. Chronology da LocalDate
iş parçacığı için güvenli ve değiştirilemez olduğunu. Sağlanan tüm standart Chronology sınıfları, diş güvenli ve değişmezdir.
Java 1.8 olduğundan, ekstra bir kütüphaneye olmadan bunu başarabilirsiniz:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
formatter = formatter.withLocale(putAppropriateLocaleHere); // Locale specifies human language for translating, and cultural norms for lowercase/uppercase and abbreviations and such. Example: Locale.US or Locale.CANADA_FRENCH
LocalDate date = LocalDate.parse("2005-nov-12", formatter);
sözdizimi olsa neredeyse aynıdır.
java.time.format.DateTimeParseException: '2005-nov-12' metni 5 –
dizininde ayrıştırılamadı Bu, varsayılan yerel ayarınızın 'N' değerinin 'N' büyük harf olmasını beklemesi nedeniyle olur. – hertzi
Bu yaklaşım hakkında daha fazla tartışma için benzer bir soruya [yanıtım] (http://stackoverflow.com/a/38904830/642706) bakın. –
+1 eksik eski sürümlerini kullanırken bu mükemmeldir. –
Oops ... Sabit, teşekkürler (daha fazla okumayı öğretecek) – fge
Ayrıca "yyyy-MMM-dd" biçimi için bir düzenleme gönderdik. YYYY, dönemin yılıdır ve (daha alçakgönüllü) DD, yılın bir günüdür. –