setiaptanggal・wakturangkaianjava.util.Tanggal,,java.util.Kalenderubah ke
Semuanya di Jawatanggal, string waktu, jika memungkinkan java.util.Kalender ,, java.util.Tanggal Ini adalah contoh program untuk mengonversi menjadi tipe.
Untuk konversi, format terlebih dahulu ke string tanggal/waktu default, lalu java.util.Kalender Konversikan menjadi tipe. Jika konversi tidak memungkinkan, IllegalArgumentException akan dilempar
Juga,java.util.Tanggal Gunakan metode getTime() kelas Kalender untuk mengonversi menjadi tipe.
Format tanggal yang dapat dikonversi adalah sebagai berikut.
contoh program
int yyyy = Integer.parseInt(strDate.substring(0,4));
int MM = Integer.parseInt(strDate.substring(5,7));
int dd = Integer.parseInt(strDate.substring(8,10));
int HH = cal.get(Kalender.HOUR_OF_DAY);
int mm = cal.get(Kalender.MINUTE);
int ss = cal.get(Kalender.SECOND);
int SSS = cal.get(Kalender.MILLISECOND);
cal.clear();
cal.set(yyyy,MM-1,dd);
int len = strDate.length();
saklar (len) {
kasus 10:
merusak;
kasus 16: // yyyy/MM/dd HH:mm
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
cal.set(Kalender.HOUR_OF_DAY,HH);
cal.set(Kalender.MINUTE,mm);
merusak;
kasus 19: //yyyy/MM/dd HH:mm:ss
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
ss = Integer.parseInt(strDate.substring(17,19));
cal.set(Kalender.HOUR_OF_DAY,HH);
cal.set(Kalender.MINUTE,mm);
cal.set(Kalender.SECOND,ss);
merusak;
kasus 23: //yyyy/MM/dd HH:mm:ss.SSS
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
ss = Integer.parseInt(strDate.substring(17,19));
SSS = Integer.parseInt(strDate.substring(20,23));
cal.set(Kalender.HOUR_OF_DAY,HH);
cal.set(Kalender.MINUTE,mm);
cal.set(Kalender.SECOND,ss);
cal.set(Kalender.MILLISECOND,SSS);
merusak;
bawaan :
melempar IllegalArgumentException baru(
“String argumen[“+ strDate +
“] tidak dapat dikonversi menjadi string tanggal”);
}
kembalikan kal;
}
/**
* Format tanggal/waktu default untuk berbagai string tanggal/waktu
Ubah ke *.
*
* ●Format tanggal default adalah sebagai berikut.
* Hanya untuk tanggal: tttt/MM/hh
* Untuk tanggal + waktu: yyyy/MM/dd HH:mm:ss.SSS
*
* @param str String untuk dikonversi
* @return Format tanggal/waktu default
* @melempar IllegalArgumentException
* Jika string tanggal tidak dapat dikonversi
*/
format String statis pribadi(String str){
if (str == null || str.trim().panjang() < 8) {
melempar IllegalArgumentException baru(
“String argumen [“+ str +
“] tidak dapat dikonversi menjadi string tanggal”);
}
str = str.trim();
String yyyy = null; String MM = null; String dd = null;
String HH = nol; String mm = nol;
String ss = nol;String ss = nol;
// Jika “-” atau “/” tidak ada
if (str.indexOf(“/”)==-1 && str.indexOf(“-“)==-1) {
if (str.panjang() == 8) {
yyyy = str.substring(0,4);
MM = str.substring(4,6);
dd = str.substring(6,8);
kembalikan tttt+”/”+MM+”/”+hh;
}
yyyy = str.substring(0,4);
MM = str.substring(4,6);
dd = str.substring(6,8);
HH = str.substring(9,11);
mm = str.substring(12,14);
ss = str.substring(15,17);
kembali tttt+”/”+MM+”/”+dd+” “+HH+”:”+mm+”:”+ss;
}
Token StringTokenizer = StringTokenizer baru(str,”_/-:. “);
Hasil StringBuffer = StringBuffer baru();
untuk(int i = 0; token.hasMoreTokens(); i++) {
String suhu = token.nextToken();
beralih(i){
kasus 0:// bagian tahun
yyyy = fillString(str, suhu, “L”, “20”, 4);
hasil.tambahkan(yyyy);
merusak;
kasus 1:// bagian bulan
MM = fillString(str, suhu, “L”, “0”, 2);
hasil.tambahkan(“/”+MM);
merusak;
kasus 2:// bagian hari
dd = fillString(str, suhu, “L”, “0”, 2);
hasil.tambahkan(“/”+dd);
merusak;
kasus 3:// bagian waktu
HH = fillString(str, suhu, “L”, “0”, 2);
hasil.tambahkan(” “+HH);
merusak;
kasus 4:// bagian menit
mm = fillString(str, suhu, “L”, “0”, 2);
hasil.tambahkan(“:”+mm);
merusak;
kasus 5:// bagian kedua
ss = fillString(str, suhu, “L”, “0”, 2);
hasil.tambahkan(“:”+ss);
merusak;
kasus 6:// bagian milidetik
SSS = fillString(str, temp, “R”, “0”, 3);
hasil.tambahkan(“.”+SSS);
merusak;
}
}
kembalikan hasil.toString();
}
String statis pribadi fillString(String strDate, String str,
Posisi string, String addStr,
ke dalam len){
if (str.panjang() > len) {
melempar IllegalArgumentException baru(
“String argumen[“+ strDate +
“] tidak dapat dikonversi menjadi string tanggal”);
}
kembalikan fillString(str, posisi, len,addStr);
}
/**
* Tambahkan string [addStr] yang akan ditambahkan ke string [str]
* Masukkan pada [posisi] hingga [len] terisi.
*
* *Bahkan jika [str] adalah null atau literal kosong, gunakan [addStr]
* Mengembalikan hasil yang disisipkan hingga [len] terisi.
* @param str string target
* @param position Sisipkan sebelum ⇒ L atau l Sisipkan setelah ⇒ R atau r
* @param len Jumlah digit yang akan diisi ulang
* @param addStr String untuk disisipkan
* @return String setelah konversi.
*/
String statis pribadi fillString(String str, posisi String,
ke dalam len,
String tambahkanStr) {
if (addStr == null || addStr.length() == 0) {
membuang IllegalArgumentException baru
(“Nilai string yang akan dimasukkan tidak valid. addStr=”+addStr);
}
jika (str == nol) {
str = “”;
}
StringBuffer buffer = StringBuffer baru(str);
while (len > buffer.panjang()) {
if (posisi.equalsIgnoreCase(“l”)) {
int jumlah = buffer.panjang() + addStr.panjang();
jika (jumlah > len) {
addStr = addStr.substring
(0,addStr.length() – (jumlah – len));
buffer.masukkan(0, addStr);
}kalau tidak{
buffer.masukkan(0, addStr);
}
} kalau tidak {
buffer.tambahkan(addStr);
}
}
if (buffer.length() == len) {
kembalikan buffer.toString();
}
return buffer.toString().substring(0, len);
}
Hasil eksekusi
◆Contoh eksekusi
// pola yyyy-MM-dd
cal = toCalendar(“2007-01-01”);
tanggal = cal.getTime();
System.out.println(“[01-01-2007] = '”+tanggal+”’”);
//pola yyyyMMdd
cal = toCalendar(“20070101”);
tanggal = cal.getTime();
System.out.println(“[20070101] = '”+tanggal+”’”);
// pola yy-MM-dd
cal = toCalendar(“01-07-01”);
tanggal = cal.getTime();
System.out.println(“[01-07-01] = '”+tanggal+”’”);
System.out.println(“\n—– Tanggal+Waktu ————————–“);
// pola yyyy/MM/dd HH:mm:ss
cal = toCalendar(“2007/01/01 12:00:00”);
tanggal = cal.getTime();
System.out.println(“[2007/01/01 12:00:00] = '”+tanggal+”’”);
// pola yyyyMMdd HH:mm:ss
cal = toCalendar(“20070101 12:00:00”);
tanggal = cal.getTime();
System.out.println(“[20070101 12:00:00] = '”+tanggal+”’”);
// pola tttt/MM/hh JJ:mm
cal = toCalendar(“2007/01/01 12:00”);
tanggal = cal.getTime();
System.out.println(“[2007/01/01 12:00] = '”+tanggal+”’”);
System.out.println(“\n—– Waktu saja —————————“);
// Pola HH:mm:ss. *Jika yang digunakan hanya waktu, tambahkan tanggal di depannya.
cal = keKalender(
SimpleDateFormat baru(“yyyy/MM/dd”).format(Tanggal baru()) +
” 12:00:00″);
tanggal = cal.getTime();
System.out.println(“[12:00:00] = '”+tanggal+”’”);
}
◆ Hasil keluaran
----- Tanggal saja ------------ [2007/01/01] = 'Senin 01 Jan 00:00: 00 JST 2007' [2007-01-01] = 'Senin 01 Jan 00:00:00 JST 2007' [20070101] = 'Senin 01 Jan 00:00:00 JST 2007' [01-07-01] = 'Senin 01 Jan 00:00:00 JST 2007' ----- Tanggal+Waktu -------------------------- [2007/01/01 12:00:00] = 'Senin 01 Jan 12:00:00 JST 2007' [20070101 12:00:00] = 'Senin 01 Jan 12:00:00 JST 2007' [2007/01/01 12:00] = 'Senin 01 Jan 12:00:00 JST 2007' ----- Waktu saja --------------------------- [12: 00:00] = 'Rabu 06 Juni 12:00:00 JST 2007'
Program contoh ini untuk Obrolan & Messenger.Fungsi manajemen kalender/jadwal” sebenarnya digunakan.