Saya memiliki string " 11/15/2013 08:00:00
", saya ingin memformatnya menjadi " 11/15/2013
", apa DateTimeFormatter
pola yang benar ?
Saya sudah mencoba banyak dan googled dan masih tidak dapat menemukan pola yang benar.
sunting: Saya mencari Joda-Time DateTimeFormatter
, bukan Java's SimpleDateFormat ..
java
jodatime
date-format
iCodeLikeImDrunk
sumber
sumber
Jawaban:
Waktu Joda
Buat
DateTimeFormatter
menggunakanDateTimeFormat.forPattern(String)
Menggunakan Joda waktu Anda akan melakukannya seperti ini:
Java Standar ≥ 8
Java 8 memperkenalkan perpustakaan Tanggal dan Waktu baru , membuatnya lebih mudah untuk menangani tanggal dan waktu. Jika Anda ingin menggunakan Java versi 8 standar atau lebih, Anda akan menggunakan DateTimeFormatter . Karena Anda tidak memiliki zona waktu di
String
, java.time.LocalDateTime atau LocalDate Anda , maka varietas waktu yang di-zonasi ZonedDateTime dan ZonedDate dapat digunakan.Java Standar <8
Sebelum Java 8, Anda akan menggunakan SimpleDateFormat dan java.util.Date
sumber
SimpleDateFormat
. Baca dokumentasi API.Saya menambahkan ini di sini meskipun jawaban lain sepenuhnya dapat diterima. JodaTime memiliki parser yang sudah dibuat sebelumnya di DateTimeFormat:
Ini sebagian besar opsi yang dicetak dengan formatnya:
sumber
sumber
DateTime.now().toString("HH:mm:ss")
Saya pikir ini akan berhasil, jika Anda menggunakan JodaTime:
Saya mendapat bagian dari ini dari sini .
sumber
D
ini untuk hari tahun, tetapi "tautan ke dokumentasi" saya tidak kedaluwarsa: dokumentasi yang saya tautkan kedaluwarsa. Saya tidak menautkan ke dokumentasi untuk kepentingannya sendiri, saya menghubungkan ke halaman tempat saya mendapatkan beberapa kode — yang kebetulan merupakan dokumentasi yang sudah ketinggalan zaman.Saya punya pilihan yang sangat bodoh tapi berfungsi. jika Anda memiliki String fullDate = "11/15/2013 08:00:00";
Itu seharusnya bekerja dengan mudah dan cepat. :)
sumber
DIPERBARUI:
Anda dapat: membuat konstanta:
DateTimeFormat ini mengimpor dari: (hati-hati dengan itu)
Pisahkan Tanggal dengan:
Sebelum:
DateTime.parse ("201711201515", DateTimeFormat.forPattern ("yyyyMMddHHmm")). ToString ("yyyyMMdd");
jika ingin datetime:
sumber
Ini bekerja
sumber
Cara lain untuk melakukan itu adalah:
Saya tidak begitu yakin, tapi saya pikir ini mungkin lebih cepat / menggunakan lebih sedikit memori daripada menggunakan
.split()
metode ini.sumber