SimpleDateFormat adalah kelas untuk memecahkan masalah format waktu kita.
SimpleDateFormat adalah kelas konkret untuk memformat dan menguraikan tanggal dengan cara yang bergantung pada lokal. Ini memungkinkan pemformatan (tanggal->teks), penguraian (teks->tanggal) dan normalisasi. SimpleDateFormat memungkinkan pemilihan pola format tanggal-waktu yang ditentukan pengguna.
Pola tanggal dan waktu Format tanggal dan waktu ditentukan berdasarkan string pola tanggal dan waktu. Dalam string pola tanggal dan waktu, huruf 'A' hingga 'Z' yang tidak diberi tanda kutip dan 'a' hingga 'z' diinterpretasikan sebagai huruf pola dan digunakan untuk mewakili elemen string tanggal atau waktu. Teks dapat diapit tanda petik tunggal (') untuk menghindari penafsiran. "''" mewakili satu kutipan. Semua karakter lain tidak diinterpretasikan; mereka hanya disalin ke string keluaran selama pemformatan, atau dicocokkan dengan string masukan selama penguraian.
Pola huruf berikut ditentukan (semua karakter lain 'A' hingga 'Z' dan 'a' hingga 'z' dicadangkan):
contoh representasi elemen tanggal atau waktu surat
Teks Pengidentifikasi Era G AD
Tahun y Tahun 1996;
M bulan dalam tahun Bulan Juli;
wJumlah minggu dalam tahun Nomor 27
W Jumlah minggu dalam bulan Nomor 2
D Jumlah hari dalam setahun Nomor 189
d Jumlah hari dalam bulan Nomor 10
F Minggu bulan Nomor 2
E Hari dalam seminggu Teks Selasa;
PM Teks Penanda Am/pm
H Jam hari (0-23) Nomor 0
k Jam hari (1-24) Nomor 24
Jumlah jam dalam K am/pm (0-11) Angka 0
h Jam dalam am/pm (1-12) Nomor 12
m Jumlah menit dalam satu jam Nomor 30
s Detik dalam menit Nomor 55
S Jumlah milidetik Nomor 978
z Zona waktu Zona waktu umum Waktu Standar Pasifik;
Zona waktu Z Zona waktu RFC 822 -0800
Contoh berikut menunjukkan cara menafsirkan pola tanggal dan waktu di wilayah AS. Tanggal dan waktu yang diberikan adalah 04-07-2001 12:08:56 waktu setempat di Zona Waktu Pasifik Amerika Serikat
Hasil pola tanggal dan waktu
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 M pada 12:08:56 PDT
"EEE, MMM d, ''yy" Rabu, 4 Juli '01
"j:mm a" 12.08
"hh 'jam' a, zzzz" pukul 12 siang, Waktu Musim Panas Pasifik
"K:mm a, z" 14.08, PDT
"yyyyy.MMMMM.dd GGG jj:mm aaa" 02001.Juli.04 M 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Rabu, 4 Juli 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 04-07-2001T12:08:56.235-0700
Contoh penerapan praktis SimpleDateFormat dalam pemrograman:
(1) Pemformatan (Tanggal->Teks)
Secara umum, tanggal dan waktu yang umum digunakan dalam bahasa Mandarin adalah: 20070719 20:29:30
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
System.out.println("Tanggal ke String "+formater.format(Tanggal baru()));
Bentuk umum serupa termasuk yyMMdd hh:mm:ss yyyy-MM-dd hh:mm:ss dd-MM-yyyy hh:mm:ss
Namun perlu dicatat bahwa format ini (19JUL07) dan bentuk serupa memiliki sedikit trik 19JUL07
Pemformat SimpleDateFormat = new SimpleDateFormat("ddMMMyy",,Lokal baru("US"))
System.out.println("Tanggal ke String "+formater.format(Tanggal baru()).toUpperCase());
Karena dalam bahasa Inggris, parameter objek Lokal harus digunakan, jika tidak, Lokal lokal default akan digunakan.
(2) Analisis (Teks->Tanggal)
Secara umum, Anda dapat menggunakan mode tanggal dan waktu apa pun serta parameter teks yang Anda inginkan untuk mendapatkan waktu dalam format yang diinginkan, misalnya, 19-7-2007 akan mengembalikan objek waktu tipe java.util.Date, dan jam. , menit, dan detik akan diisi dengan 0s.
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
mencoba...{
System.out.println("String ke Tanggal "+formater.parse("2007sep01"));
} tangkapan (ParseException e) ...{
e.printStackTrace();
}
Secara khusus,
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
mencoba...{
System.out.println("String ke Tanggal "+formater.parse("2007sep01"));
} tangkapan (ParseException e) ...{
e.printStackTrace();
}
Ia juga mengembalikan objek tanggal bertipe java.util.Date, dengan jam, menit dan detik yang diisi dengan 0s.
(3) Teks -> Stempel Waktu, Tanggal -> Stempel Waktu
Stempel waktu t;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
mencoba...{
t = Stempel Waktu baru(format.parse("19-07-2007 00:00:00").getTime());
} tangkapan (ParseException e) ...{
e.printStackTrace();
}
Stempel waktu t;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
t = Stempel Waktu baru(Tanggal baru().getTime