Saya memiliki tanggal variabel LocalDate disebut, ketika saya mencetaknya menampilkan 1988-05-05 Saya perlu mengonversi ini untuk dicetak sebagai 05 Mei Mei 1988.Cara melakukan ini?
Saya memiliki tanggal variabel LocalDate disebut, ketika saya mencetaknya menampilkan 1988-05-05 Saya perlu mengonversi ini untuk dicetak sebagai 05 Mei Mei 1988.Cara melakukan ini?
Jawaban:
SimpleDateFormat tidak akan berfungsi jika dia memulai dengan LocalDate yang baru di Java 8. Dari apa yang saya lihat, Anda harus menggunakan DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ waktu / format / DateTimeFormatter.html .
LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);
Itu harus mencetak 05 Mei 1988. Untuk mendapatkan periode setelah hari dan sebelum bulan, Anda mungkin harus menggunakan "dd'.LLL yyyy"
Dengan bantuan posting ProgrammersBlock saya datang dengan ini. Kebutuhan saya sedikit berbeda. Saya perlu mengambil string dan mengembalikannya sebagai objek LocalDate. Saya diberi kode yang menggunakan Kalender dan SimpleDateFormat yang lebih lama. Saya ingin membuatnya sedikit lebih terkini. Inilah yang saya pikirkan.
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));
}
Semoga ini akan membantu seseorang, jika ada yang melihat cara yang lebih baik dalam melakukan tugas ini, silakan tambahkan masukan Anda.
LocalDate.parse(rawDate)! String.formatsedang digunakan dalam bentuk yang salah total di sini, sebenarnya hanya mengembalikan string pertama; yang DateTimeFormattertidak digunakan sama sekali; parseadalah staticmetode LocalDate; formattedDateadalah tidak tanggal diformat, bahkan tidak String(seperti yang diminta dalam pertanyaan)
Ada cara bawaan untuk memformat LocalDate untuk joda lib
import org.joda.time.LocalDate;
LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);
Jika Anda belum memilikinya - tambahkan ini ke build.gradle:
implementation 'joda-time:joda-time:2.9.5'
Selamat coding! :)
Cara yang cukup bagus untuk melakukan ini adalah dengan menggunakan SimpleDateFormatsaya akan menunjukkan kepada Anda caranya:
SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);
Saya melihat bahwa Anda memiliki tanggal dalam variabel:
sdf.format(variable_name);
Bersulang.
LocalDateinstance dalam format tertentu. Bagaimana bisa SimpleDateFormatmembantunya di sini?
Strings.