Selama formatnya benar, cukup bandingkan string secara langsung, hal yang sama berlaku untuk detik.
String S1 = "2003-12-12 11:30:24"; String S2 = "2004-04-01 13:31:40"; int res = s1.compareto (S2);
Temukan perbedaan tanggal
SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); Tanggal mulai = df.parse ("2004-01-02 11:30:24"); Tanggal akhir = df.parse ("2004-03-26 13:31:40"); Long antar = (end.getTime ()-begin.getTime ())/1000; // Divid dengan 1000 adalah untuk dikonversi ke detik int hari = antara/(24*3600); int jam = antara%(24*3600)/3600; int menit = antara%3600/60; int kedua = antara%60; Kelas waktu dan tanggal sering digunakan, sehingga metode dan atribut tanggal yang umum digunakan dirangkum sebagai berikut untuk memfasilitasi semua orang untuk menemukannya.
1. Hitung jumlah hari maksimum dalam satu bulan tertentu
Waktu kalender = calendar.getInstance (); time.clear (); time.set (calendar.ear, tahun); time.set (calendar.month, i-1); // Perhatikan bahwa objek kalender default hingga 0 Januari int day = time.getActualmaximum (calendar.day_of_month); // jumlah hari dalam bulan ini
Catatan: Sebelum menggunakan metode SET, yang terbaik adalah menghapusnya terlebih dahulu, jika tidak, banyak informasi akan diwarisi dari waktu sistem saat ini.
2. Konversi Kalender dan Tanggal
(1) Kalender dikonversi hingga saat ini
Calendar cal = calendar.getInstance (); Tanggal tanggal = cal.getTime ();
(2) Konversi Tanggal ke Kalender
Tanggal Tanggal = Tanggal Baru (); Calendar cal = calendar.getInstance (); Cal.settime (tanggal);
3. Format tanggal dan waktu output
Tanggal Tanggal = Tanggal Baru (); SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); System.out.println (df.format (tanggal)); 4. Hitung minggu apa tahun
(1) Hitung apa minggu dalam setahun sehari itu
Calendar cal = calendar.getInstance (); Cal.Set (Calendar.Year, 2006); Cal.set (Calendar.month, 9); cal.set (calendar.day_of_month, 3); int weekno = cal.get (calendar.week_of_year);
(2) Hitung minggu apa dalam setahun
SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); Calendar cal = calendar.getInstance (); Cal.Set (Calendar.Year, 2006); cal.set (calendar.week_of_year, 1); cal.set (calendar.day_of_week, calendar.monday); System.out.println (df.format (cal.getTime ()));Keluaran:
2006-01-02
5. Penggunaan add () dan roll ()
(1) Metode Tambah ()
SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); Calendar cal = calendar.getInstance (); Cal.Set (Calendar.Year, 2006); Cal.set (Calendar.month, 9); cal.set (calendar.day_of_month, 3); cal.add (calendar.date, -4); Tanggal tanggal = cal.getTime (); System.out.println (df.format (tanggal)); Cal.Add (Calendar.Date, 4); tanggal = cal.getTime (); System.out.println (df.format (tanggal)); Keluaran:
2006-08-30
2006-10-03
(2) Metode Roll
Cal.Set (Calendar.Year, 2006); Cal.set (Calendar.month, 9); cal.set (calendar.day_of_month, 3); Cal.roll (Calendar.Date, -4); tanggal = cal.getTime (); System.out.println (df.format (tanggal)); Cal.roll (Calendar.Date, 4); tanggal = cal.getTime (); System.out.println (df.format (tanggal));
Keluaran:
2006-10-29
2006-10-03
Dapat dilihat bahwa loop metode roll () dalam bulan ini, dan metode add () umumnya digunakan;
6. Hitung jumlah hari antara dua waktu sewenang -wenang
(1) Masuk ke objek Kalender
/*** // ** Hitung jumlah hari antara dua kali* @param startday waktu mulai* @param akhir waktu akhir* @return*/int getIntervaldays public (calendar startday, calendar endday) .. {// geting hari sebelum hari ini (startedday. dua kali masing -masing SL = startday.getTimeInmillis (); long el = endday.getTimeInmillis (); Long ei = el-sl; // Hitung hari interval berdasarkan pengembalian milidetik (int) (ei/(1000*60*60*24));}(2) Masuk ke objek tanggal
/*** // ** Hitung jumlah hari antara dua kali* @param start hari mulai waktu* @param akhir hari akhir* @return*/public int getIntervaldays (tanggal start hari, tanggal hari) ... {// pastikan start hari sebelum hari (akhir hari. SL = startday.getTime (); long el = endday.getTime (); Long ei = el-sl; // Hitung hari interval berdasarkan pengembalian milidetik (int) (ei/(1000*60*60*24));}Demikian pula, Anda dapat menggunakan metode yang sama untuk menghitung jumlah jam, menit, detik, dll. Catatan: Metode di atas dihitung sepenuhnya berdasarkan waktu, dan kadang -kadang tidak memuaskan, seperti:
startday = "2006-10-11 20:00:00" Endday = "2006-10-12 8:00:00"
Hasil perhitungannya adalah 0, tetapi kita dapat membuat hasil perhitungan menjadi 1. Pada saat ini, kita dapat menggunakan metode berikut:
Sebelum melewati argumen, atur waktu akhir pertama, seperti:
endday.set (calendar.hour_of_day, 23); Endday.set (Calendar.minute, 59); Endday.set (Calendar.Second, 59); Endday.set (Calendar.Millisecond, 59);
Jika Anda meneruskannya, maka hasilnya akan seperti yang kami inginkan. Namun, jika Anda menemukan metode di atas merepotkan, Anda dapat merujuk pada metode berikut:
(3) Tingkatkan metode menghitung secara akurat jumlah hari terpisah
Public int getDaysbetween (Kalender D1, Kalender D2) ... {if (d1.after (d2)) ... {// Tanggal swap sehingga D1 mulai dan d2 adalah java.util.calendar swap = d1; d2 = d2; d2 = swap;} int Days = d2.get = d1; d2 = d2; d2 = swap;} int Days = d2.get = d1; d2; d2; d2 = swap;} int Days = d2.get (calend. d1.get (calendar.day_of_year); int y2 = d2.get (calendar.year); if (d1.get (calendar.year)! = y2) ... {d1 = (calendar) d1.clone (); do ... {days +d1.getActualMaximum (calendar.day.dayer. d1.add (calendar.year, 1);} while (d1.get (calendar.year)! = y2);} kembali hari;}Dapatkan waktu sistem saat ini:
Public Static String getSystemTime () {date date = new date (); SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); return df.format (date);} // ubah string menjadi tipe waktu (string dapat berupa jenis apa pun, seperti yang sama seperti itu yang sama. sdf = java.text.simpledateFormat baru ("m/dd/yyyy hh: mm: ss a", java.util.locale.us); java.util.date d = sdf.parse ("5/13/2003 10:31:37 Am"); Simpleate-MM "); HH: mm: ss "); string mdateTime1 = formatter.format (d); // kalender kaler = calendar.getInstance (); // formatterformat formatter = new SimpledateFormat (" yyyy-mm-dd hh: mm: ss "); SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss gedf w w a ef"); string mdateTime = formatter.format (cal.getTime ()); // 1 tahun lalu tanggal java.util.date midate = new java.util.date.date.date.date.date.date.date.date.date.date.date.date new () long mytime = (mydate.getTime ()/1000) -60*60*24*365; mydate.settime (mytime*1000); string mdate = formatter.format (mydate); // besok tanggal mydate = baru java.util.Date();myTime=(myDate.getTime()/1000)+60*60*24;myDate.setTime(myTime*1000);mDate=formatter.format(myDate);//The number of days between two times SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");java.util.Date date= myFormatter.parse("2003-05-1");java.util.Date mydate= myFormatter.parse("1899-12-30");long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);//Add half an hour SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH: mm: ss "); java.util.date date1 = format.parse (" 2002-02-28 23:16:00 "); Long Time = (Date1.GetTime ()/1000)+60*30; Date1.SetTime (waktu*1000); string mydate1 = formatter.format (date1); // tahun, bulan, minggu, tanggal SimpleDateFormat formatter2 = new SimplateFormat ("yyyy-mm fe"); java.util.date.date.date.date.date.date.date.date.date.date.date.date.date.date.date.date.date.date Jumat "); formatterformat formatter3 = new SimpleDateFormat (" yyyy-mm-dd "); string mydate2 = format3.format (date2); // temukan hari dalam seminggu mydate = myFormatter.parse (" 2001-1-1 "); format SimplateFaPat4 = format SimpleDateMatter (" E "); SimpleTaFaPATIT4 = MydedateFormat (" E "); SimpleTaFATATICat = format SimplateFormat (" E "); SimpleTaFATATATICET4 = new SimplateFormat (" E "); SimpleTaFATATATICat = format SimplateFormat (" "E");Dalam mengembangkan aplikasi Web, kita perlu membuat berbagai konversi yang berbeda hingga jenis tanggal dalam program kami untuk jenis tanggal database yang berbeda. Jika data database yang sesuai adalah jenis tanggal Oracle, yaitu hanya tahun, bulan dan hari yang dibutuhkan, Anda dapat memilih untuk menggunakan jenis java.sql.date. Jika data basis data yang sesuai adalah jenis database MSSQLServer, yaitu, tahun, bulan, hari, jam, dan kedua diperlukan, pilih jenis java.sql.timestamp
Anda dapat menggunakan DateFormat untuk menentukan format waktu dan tanggal dan mengubahnya menjadi string
Paket Personal.jessica; import java.util.date; import java.util.calendar; import java.sql.timestamp; import java.text.dateFormat; import java.text.simpledFormat; import java.util.locale; class datetes {/** date ** date ** date ** date ** date ** date -dateTamp java.sql.Timestamp) *@param dateString String that needs to be converted to timestamp*@return dataTime timestamp */public final static java.sql.Timestamp string2Time(String dateString) throws java.text.ParseException {DateFormat dateFormat;dateFormat = new SimpleDateFormat("yyyy-MM-dd KK: MM: SS.SSS ", locale.English); // Atur format // dateFormat = new SimpleDateFormat (" yyyy-mm-dd kk: mm: ss ", lokal.English); dateFormat.setLenient (false); java.util.date timedate = dateFormat.parse (dateString); // type type java.sql.timestamp datetime = new java.sql.timestamp (timedate.getTime ()); // tipe timeDate. Tanggal jenis string ke tanggal (java.sql.date) *@param dataString string yang perlu dikonversi hingga tanggal *@pengembalian tanggal */public final static java.sql.date string2date (string DataString) lemparan java.lang.exception {dateFormat dateFormat; dateMer-date "date-dape-dEDLEGATEFAT; date-dateFormat; date-date-date-date-date-date; date-m-m-m-m-develFeFat; date-m-m-mo (date-m-m- Locale.English); dateFormat.setLenient (false); java.util.date timedate = dateFormat.parse (dateString); // type java.sql.date dateTime = new java.sql. Tanggal baru (); // Catatan: Di tempat ini, da.getTime () mendapatkan sistem nilai yang panjang.out.println (da.getTime ()); // Konversi dari tanggal ke cap waktu // metode pertama: Gunakan timestamp baru (long) timestamp t = new timestamp (tanggal baru (). Gettime ()); System.out.println (t); // Metode kedua: Gunakan timestamp (tahun int, bulan int, tanggal int, jam int, menit int, int kedua, int nano) timestamp tt = timestamp (calendar.getinstance (calendar.getin. Calendar.date), calendar.getInstance (). Get (calendar.hour), calendar.getInstance (). Get (calendar.minute), calendar.getInstance (). Get (calendar.second), 0); System.out.println (tt); try {string tongkat), "2005-Println (tt); try {string {string tongkat)," 2005; java.sql.date stotitimestamp = "2005-8-18 14: 21: 12.123"; // string standle yang digunakan untuk mengonversi ke java.sql.timestamp Date1 = string2Date (status); date-date2 = stoMestamp (stoMestamp); System.out.printl); date-date (stoMestamp); System.out.out.printl); date-date (stoMestamp); System.out.out.printl); date-date (stoMestamp); System.out.out.printl); date-date (stoMestamp); System.out.out. untuk mengonversi ke java.sql.timestamp tanggal 1 = string2date (stotimestamp); System.out.println ("Tanggal:"+Tanggal2.ToString ()); // String standle yang digunakan untuk mengonversi ke java.sql.timestamp Tanggal Tanggal2 = String2Time (StotiMestamp); System.out.println ("Timestamp:"+date2.toString ()); // standle tostack} catch (exception e) {e.printstacktrace ();}}}Inilah contohnya:
Kode Java
Tes Paket; Impor Java.Text.DateFormat; Impor Java.Text.ParseException; Impor Java.Text.SimpledateFormat; Impor Java.util.Calendar; Impor Java.util.Date; Impor Java.util.HashAstable; impor javax.swing.swing. ) {string a [] = s.split ("-"); boolean flg = true; if (! (integer.parseint (a [0])> = 1950 && integer.parseint (a [0]) <= 2050)) {flg = false;} retlean flg;} boolean static public static centang (sang sing {{falsform = {boole {boole {{falsform = {falsform; {falsform = {falsform; {falsform {{falsform = {falsform; SimpleDateFormat ("yyyy-mm-dd"); ret = df.format (df.parse (s)). Sama dengan (s);} catch (parseException e) {ret = false;} return ret;} public object dateInfo (string s) {string a [] = s.split ("-", 2, 2); Hashtable (); fest.put ("01-01", "Hari Tahun Baru"); fest.put ("02-14", "Hari Valentine"); fest.put ("03-12", "Hari Arbor"); fest.put ("03-15", "Hari Konsumsi"); fest.put ("04-01," April "); Fest.put"); fest.put ("04-01,", "03-15"); Fest.put. Festival "); fest.put (" 05-01 "," Hari Buruh "); fest.put (" 06-01 "," Hari Anak "); Fest.put (" 07-01 "," Centering the Party Day "); Fest.put (" 08-01 "," Hari Angkatan Darat "); fest.put (" 09-10 "," Day "Guru"); Fest.put. Day");fest.put("12-25","Christmas");if(fest.containsKey(a[1])){ return fest.get(a[1]);} else{return "No holiday";}}public String xingzuo(Date s){Calendar cal = Calendar.getInstance();cal.setTime(s);String xingzuo="No";int day = cal.get (calendar.day_of_year); if ((cal.get (calendar.year)%4 == 0) && (cal.get (calendar.year)%100! = 0) || (cal.get (calendar.year)%400 == 0)) {if ((hari> = 1 && Day <= 19) || (Day> = 357 && Day <= 366)) {xingzuo = "scorpio";} lain jika (hari> = 20 && hari <= 49) {xingzuo = "aquarius";} lain jika (hari> = 50 && hari <= 80) {xingzuo "; && Day <= 110) {xingzuo = "Aries";} lain jika (hari> = 111 && day <= 141) {xingzuo = "taurus";} lain jika (hari> = 142 && day <= 173) {xingzuo = "gemini";} lain jika lain (hari> = 173) {xingzuo = "gemini";} lainnya (hari> = 173) {xingzuo = "Gemini"; lain if (day> = 204 && day <= 235) {xingzuo = "leo";} lain if (day> = 236 && day <= 266) {xingzuo = "virgo";} lain jika (hari> = 267 && hari <= 296) {xingzuo = "libra";}}}; && Day <= 326) {xingzuo = "scorpio";} else if (day> = 327 && day <= 356) {xingzuo = "sauvignon";}} else {if (day> = 1 && day <= 19) || (hari> = 357 & & hari <= 366) {x = 19) || (hari> = 357 & & hari <= 366) {1) {day> = 357 & & Day <= 366) {1) {day = 357 & & Day <= 36) {day = if (day> = 20 && day <= 48) {xingzuo = "aquarius";} lain if (day> = 49 && day <= 79) {xingzuo = "pisces";} lain if (day> = 80 && day <= 109) {xingzuo "; "Taurus";} lain jika (hari> = 141 && day <= 172) {xingzuo = "gemini";} lain jika (hari> = 173 && hari <= 202) {xingzuo = "kanker";} lain if (day> = 203 && day <= 234) {xingzuo "; &&day<=265){xingzuo= "Virgo";} else if(day>=266 &&day<=295){xingzuo= "Libra";} else if(day>=296 &&day<=325){xingzuo= "Scorpio";} else if(day>=326 &&day<=355){xingzuo= "Saucy";}} return xingzuo;}public Date parseDate(String s){SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd");try {Date date3 = bartDateFormat.parse(s);date3=bartDateFormat.parse(s);return date3;}catch (Exception ex) {return null;}} public static void main (string [] args) {calendar cal = calendar.getInstance (); test2 test2 = new test2 (); string date1 = joptionpane.showinputDialog ("Harap masukkan tanggal, formatnya adalah 2000-15"); while(!(Test2.checkDate(date1)&&Test2.isdate(date1))){date1=JOptionPane.showInputDialog("Please enter the date, the format is as 2000-10-15");}SimpleDateFormat bartDateFormat1 = new SimpleDateFormat("yyyy,MM,dd,EEE");SimpleDateFormat bartDateFormat2 = new SimpleDateFormat ("yyyy-mm-dd"); date date2 = test2.parsedate (date1); string festinfo = (string) test2.dateInfo (date1); System.out.println (bartDateFormat1.Format (date2)+","+festinfo+","+uji. day = joptionpane.showInputDialog ("Harap masukkan informasi tanggal untuk permintaan n hari"); cal.settime (date2); cal.add (calendar.date, integer.parseint (hari)); string Date5 = bartDateFormat2.Format (cal.getTime ()); festinfo = (string) test2.dateInfo (date5); System.out.println (bartDateFormat1.format (cal.getTime ())+","+festinfo+","+test2.xingzuo (cal.geteetMeringkaskan
Di atas adalah semua penjelasan terperinci tentang Penggunaan Waktu dan Tanggal Java dan kode kueri dalam artikel ini. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!