Date adında bir LocalDate değişkeni var, yazdırdığımda 1988-05-05 görüntüler. 05 Mayıs 1988 olarak yazdırmak için bunu dönüştürmek gerekir.
Date adında bir LocalDate değişkeni var, yazdırdığımda 1988-05-05 görüntüler. 05 Mayıs 1988 olarak yazdırmak için bunu dönüştürmek gerekir.
Yanıtlar:
SimpleDateFormat, Java 8'de yeni olan LocalDate ile başlıyorsa çalışmaz. Görebildiğim kadarıyla, 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 Mayıs 1988 yazılmalıdır. Gün ve aydan önceki dönemi elde etmek için "dd'.LLLL yyyy" kullanmanız gerekebilir.
ProgrammersBlock mesajlarının yardımıyla bunu buldum. Benim ihtiyaçlarım biraz farklıydı. Bir dize alıp bir LocalDate nesnesi olarak döndürmek gerekiyordu. Eski Takvim ve SimpleDateFormat kullanarak kod verildi. Biraz daha güncel yapmak istedim. Ben de bunu buldum.
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));
}
Umarım bu birisine yardımcı olur, eğer birisi bu görevi yerine getirmenin daha iyi bir yolunu görürse lütfen girişinizi ekleyin.
LocalDate.parse(rawDate)! String.formatburada tamamen yanlış bir biçimde kullanılıyor, aslında sadece ilk dizeyi döndürüyor; DateTimeFormatterhiç kullanılmadığından; parsebir staticmetodudur LocalDate; formattedDateolduğu değil bir biçimlendirilmiş tarih, hatta bir String(söz konusu istendiği gibi)
Joda lib için LocalDate'i formatlamanın yerleşik bir yolu var
import org.joda.time.LocalDate;
LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);
Henüz sahip değilseniz - bunu build.gradle dosyasına ekleyin:
implementation 'joda-time:joda-time:2.9.5'
Mutlu kodlama! :)
Bunu yapmanın çok güzel bir yolu SimpleDateFormatsize nasıl olduğunu göstereceğim:
SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);
Bir değişken içinde tarih olduğunu görüyorum:
sdf.format(variable_name);
Şerefe.
LocalDateörneğin içeriğini belirli bir biçimde yazdırmak istiyor . SimpleDateFormatBurada ona nasıl yardımcı olabilirsiniz ?
Strings'ye nasıl dönüştüğüne dair örnekler var .