طالما أن التنسيق صحيح ، فقط قارن الأوتار مباشرة ، وينطبق الشيء نفسه على الثواني.
String S1 = "2003-12-12 11:30:24" ؛ String S2 = "2004-04-01 13:31:40" ؛ int res = s1.compareto (s2) ؛
ابحث عن فرق التاريخ
SimplEdateFormat df = new SimpleDateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ تاريخ البدء = df.parse ("2004-01-02 11:30:24") ؛ نهاية التاريخ = df.parse ("2004-03-26 13:31:40") ؛ طويل بين = (end.getTime ()-begin.getTime ())/1000 ؛ // المقسوم على 1000 هو أن يتحول إلى ثواني int day = بين/(24*3600) ؛ int ساعة = بين ٪ (24*3600)/3600 ؛ int دقيقة = بين ٪ 3600/60 ؛ int الثاني = بين ٪ 60 ؛ غالبًا ما يتم استخدام فصول الوقت والتاريخ ، لذلك يتم تلخيص طرق التاريخ الشائعة الاستخدام والسمات على النحو التالي لتسهيل الجميع للعثور عليها.
1. احسب الحد الأقصى لعدد الأيام في شهر معين
وقت التقويم = calendar.getInstance () ؛ time.clear () ؛ time.set (Calendar.year ، year) ؛ time.set (calendar.month ، i-1) ؛ // لاحظ أن كائن التقويم يتخلف عن سداد 0 يناير int day = time.getActualMaximum (calendar.day_of_month) ؛ // عدد الأيام في هذا الشهر
ملاحظة: قبل استخدام طريقة SET ، من الأفضل مسحها أولاً ، وإلا فإن الكثير من المعلومات سيتم ورثها من وقت النظام الحالي.
2. تحويل التقويم والتاريخ
(1) التقويم تم تحويله إلى تاريخ
Calendar Cal = Calendar.getInstance () ؛ تاريخ التاريخ = cal.getTime () ؛
(2) تحويل التاريخ إلى التقويم
تاريخ تاريخ = تاريخ جديد () ؛ Calendar Cal = Calendar.getInstance () ؛ Cal.Settime (التاريخ) ؛
3. تنسيق تاريخ ووقت الإخراج
تاريخ تاريخ = تاريخ جديد () ؛ SimplEdateFormat df = new SimpleDateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ system.out.println (df.format (date)) ؛ 4. احسب ما هو أسبوع من العام
(1) حساب ما هو أسبوع السنة في اليوم
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) حساب ما هو أسبوع العام
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 ())) ؛الإخراج:
2006-01-02
5. استخدام Add () و Roll ()
(1) إضافة () طريقة
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) ؛ تاريخ التاريخ = cal.getTime () ؛ system.out.println (df.format (date)) ؛ Cal.Add (Calendar.Date ، 4) ؛ التاريخ = cal.getTime () ؛ system.out.println (df.format (date)) ؛ الإخراج:
2006-08-30
2006-10-03
(2) طريقة لفة
Cal.Set (Calendar.year ، 2006) ؛ Cal.Set (Calendar.month ، 9) ؛ cal.set (calendar.day_of_month ، 3) ؛ Cal.Roll (Calendar.Date ، -4) ؛ التاريخ = cal.getTime () ؛ system.out.println (df.format (date)) ؛ Cal.Roll (Calendar.Date ، 4) ؛ التاريخ = cal.getTime () ؛ system.out.println (df.format (date)) ؛
الإخراج:
2006-10-29
2006-10-03
يمكن ملاحظة أن طريقة Roll () خلال هذا الشهر ، ويتم استخدام طريقة ADD () عمومًا ؛
6. احسب عدد الأيام بين مرتين تعسفي
(1) الانتقال إلى كائن تقويم
/*** // ** حساب عدد الأيام بين مرتين* param وقت البدء وقت البدء* param وقت نهاية اليوم* @return*/public int getIntervaldays (التقويم ، يوم البدء ، يوم نهاية التقويم) .. مرات طويلة على التوالي sl = start day.getTimeInMillis () ؛ long el = endday.getTimeInMillis () ؛ طويل ei = el-sl ؛ // قم بحساب أيام الفاصل الزمني بناءً على عودة المللي ثانية (int) (ei/(1000*60*60*24)) ؛}
(2) تمرير كائن التاريخ
/*** // ** احسب عدد الأيام بين مرتين* param وقت البدء وقت البدء* param وقت نهاية النهار* @RETURN*/public int getIntervaldays (يوم البدء ، يوم نهاية التاريخ) ... sl = startday.getTime () ؛ long el = endday.getTime () ؛ طويل ei = el-sl ؛ // قم بحساب أيام الفاصل الزمني بناءً على عودة المللي ثانية (int) (ei/(1000*60*60*24)) ؛}
وبالمثل ، يمكنك استخدام نفس الطريقة لحساب عدد الساعات والدقائق والثواني وما إلى ذلك. ملاحظة: يتم حساب الطريقة أعلاه تمامًا بناءً على الوقت ، وأحيانًا لا تكون مرضية ، مثل:
start Day = "2006-10-11 20:00:00" endway = "2006-10-12 8:00:00"
نتيجة الحساب هي 0 ، لكن قد نجعل نتيجة الحساب 1. في هذا الوقت ، يمكننا استخدام الطريقة التالية:
قبل تمرير الوسيطة ، قم بتعيين وقت الانتهاء أولاً ، مثل:
endday.set (calendar.hour_of_day ، 23) ؛ endday.set (Calendar.Minute ، 59) ؛ endday.set (Calendar.Second ، 59) ؛ endday.set (calendar.millisecond ، 59) ؛
إذا قمت بتمريرها ، فستكون النتيجة كما نرغب. ومع ذلك ، إذا وجدت الطريقة المذكورة أعلاه مزعجة ، فيمكنك الرجوع إلى الطريقة التالية:
(3) تحسين طريقة حساب عدد الأيام بتبادل بدقة
public int getDaySbetween (Calendar D1 ، Calendar D2) ... {if (d1.after (d2)) ... {// swap تواريخ بحيث يكون d1 و d2 هو java.util.calendar swap = d1 ؛ d1 = d2 ؛ d2 = swap ؛ 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.getActualMaxim (calendar.day_of_year) ؛ d1.Add (Calendar.year ، 1) ؛} بينما (d1.get (calendar.year)! = y2) ؛} أيام العودة ؛}احصل على وقت النظام الحالي:
السلسلة الثابتة العامة getSystem () {Date Date = New Date () ؛ SimpleDateFormat df = new SimplEdateFormat ("YyyyM-MM-DD HH: MM: SS") ؛ إرجاع df.format (date) ؛ sdf = new java.text.simpleDateFormat ("m/dd/yyyy hh: mm: ss a" ، java.util.locale.us) ؛ HH: mm: ss ") ؛ String mdatetime1 = formatter.format (d) ؛ // calendar cal = calendar.getInstance () ؛ // simpledateformat formatter = new SimpleTformat (" yyyy-mm-dd hh: mm: ss ") ؛ simpletformat formatter = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss gedf w w a ef") ؛ string mdatetime = formatter.format (cal.gettime ()) ؛ // 1 منذ سنة تاريخ java.util.date mydate = new java.util.util.date () ؛ long mytime = (myDate.getTime ()/1000) -60*60*24*365 ؛ myDate.Settime (mytime*1000) ؛ String mdate = formatter.format (myDate) ؛ // غدًا myDate = جديد java.util.date () ؛ mytime = (myDate.getTime ()/1000)+60*60*24 ؛ mydate.settime (mytime*1000) ؛ mdate = formatter.format (myDate) ؛ // عدد الأيام بين مرتين تبسيط myFormatter = جديد التبسيط. myFormatter.parse ("2003-05-1") ؛ java.util.date myDate = myFormatter.parse ("1899-12-30") ؛ يوم طويل = (date.getTime ()-myDate.getTime ())/(24*60*1000) HH: MM: SS ") ؛ Java.Util.Date Date1 = Format.Parse (" 2002-02-28 23:16:00 ") ؛ وقت طويل = (Date1.getTime ()/1000)+60*30 ؛ Date1.Settime (الوقت*1000) ؛ String myDate1 = formatter.format (date1) ؛ // year ، month ، week ، date simpledateThormat 2 = new SimpleDateFormat ("yyyy-mm fe") ؛ java.util. الجمعة ") ؛ simpletformat formatter3 = new SimpleDateFormat (" Yyyy-MM-DD ") ؛ String MyDate2 = format3.format (date2) ؛ // ابحث عن يوم الأسبوع myDate = myFormatter.parse (" 2001-1-1 ") ؛ simpledateFormat formatter4 = new Simpledatformat (" e ") ؛في تطوير تطبيقات الويب ، نحتاج إلى إجراء تحويلات مختلفة مختلفة حتى الآن في برنامجنا لأنواع تاريخ قاعدة البيانات المختلفة. إذا كانت بيانات قاعدة البيانات المقابلة هي نوع تاريخ Oracle ، أي فقط في السنة والشهر واليوم ، يمكنك اختيار استخدام نوع java.sql.date. إذا كانت بيانات قاعدة البيانات المقابلة هي نوع DateTime لقاعدة بيانات MSSQLServer ، أي السنة والشهر والساعة والدقيقة والثانية ، حدد نوع java.sql.timestamp
يمكنك استخدام DateFormat لتحديد تنسيق الوقت والتاريخ وتحويله إلى سلسلة
package personal.jessica ؛ import java.util.date ؛ import java.util.calendar ؛ import java.sql.timestamp ؛ import java.text.dateformat ؛ import java.text. java.sql.timestamp) *@param سلسلة datestring التي يجب تحويلها إلى timestamp *@return datatime timestamp */public final static java.sql.timestamp string2time (String dateString) رمي java.text.parseexception {dateFormat ؛ KK: mm: ss.sss "، locale.english) ؛ // set format // dateFormat = new SimpleDateFormat (" Yyyy-MM-DD KK: mm: ss "، locale.english) ؛ DateFormat.setLenient (false) ؛ java.util.date timedate = dateFormat.parse (dateString) ؛ // type type java.sql.timestamp dateTime = new java.sql.timestamp (timedate.gettime () اكتب إلى تاريخ (java.sql.date) *@param datestring السلسلة التي يجب تحويلها إلى تاريخ *@إرجاع Datatime Date */public Final Static Java.sql.date String2Date (String dateString) رمي java.lang.exception {dateFormat ؛ locale.english) ؛ dateformat.setLenient (false) ؛ java.util.date timeDate = dateFormat.Parse (dateString) ؛ // util type java.sql.date dateTime = new java.sql.date (timedate.gettime () ؛ DATE () ؛ // ملاحظة: في هذا المكان ، يحصل da.gettime () على نظام قيمة طويل. System.out.println (t) ؛ // الطريقة الثانية: استخدام الطابع الزمني (int year ، int month ، int date ، int int ، int second ، int nano) timestamp tt = new timestamp (calendar.getInstance (). calendar.date) ، calendar.getInstance (). get (calendar.hour) ، calendar.getInstance (). get (calendar.minute) ، calendar.getInstance (). get (calendar.second) ، 0) ؛ java.sql.date stotimestamp = "2005-8-18 14: 21: 12.123" ؛ // Standle String المستخدمة للتحويل إلى java.sql.timestamp Date1 = string2date (date1) ؛ إلى java.sql.timestamp تاريخ تاريخ 1 = string2date (stotimestamp) ؛ system.out.println ("التاريخ:"+date2 tostack} catch (استثناء e) {e.printstacktrace () ؛}}}هنا مثال:
كود جافا
اختبار الحزمة ؛ استيراد java.text.dateformat ؛ استيراد java.text.parseException ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.calendar a [] = s.split ("-") ؛ boolean flg = true ؛ if (! (integer.parseint (a [0])> = 1950 && integer.parseint (a [0]) <= 2050)) {flg = false ؛ simpledateformat ("yyyy-mm-dd") ؛ ret = df.format (df.parse (s)). يساوي (s) ؛} catch (parseException e) {ret = false ؛ hashtable () ؛ fest.put ("01-01" ، "يوم رأس السنة الجديدة") ؛ fest.put ("02-14" ، "عيد الحب") ؛ Fest.put ("03-12" ، "Arbor Day") ؛ Festival ") ؛ Fest.put (" 05-01 "،" عيد العمال ") ؛ FEST.PUT (" 06-01 "،" يوم الأطفال ") ؛ FEST.PUT (" 07-01 "،" Calcing the Party Day ") ؛ Fest.put (" 08-01 "،" Army Day ") ؛ Fest.put (" 09-10 "،" اليوم ") ؛ fest.put (" 12-25 "،" عيد الميلاد ") ؛ if (fest.containskey (a [1])) {return fest.get (a [1]) ؛} else {return" no holiday "؛ اليوم = 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)) && day <= 19) || (day> = 357 && day <= 366)) {xingzuo = "scorpio" ؛} آخر إذا (day> = 20 && day <= 49) {xingzuo = "aquarius" ؛ && day <= 110) {xingzuo = "aries" ؛} آخر إذا (day> = 111 && day <= 141) {xingzuo = "taurus" ؛} آخر إذا (day> = 142 && day <= 173) {xingzuo = "gemini" ؛ وإلا && day <= 326) {xingzuo = "scorpio" ؛} آخر إذا (day> = 327 && day <= 356) {xingzuo = "sauvignon" if (day> = 20 && day <= 48) {xingzuo = "aquarius" ؛} آخر إذا (اليوم> = 49 && day <= 79) {xingzuo = "pisces" ؛ "taurus" ؛} آخر إذا (day> = 141 && day <= 172) {xingzuo = "gemini" ؛} آخر إذا (day> = 173 && day <= 202) {xingzuo = "cancer" ؛ && day <= 265) {xingzuo = "virgo" ؛} آخر إذا (day> = 266 && day <= 295) {xingzuo = "libra" ؛} else else (day> = 296 && day <= 325) {xingzuo = "scorpio" ؛ "sucy" ؛}} return xingzuo ؛} public date parsedate (سلسلة s) {simpledateformat bartdateformat = new SimpleDateFormat ("yyyy-mm-dd") ؛ جرب {date 3 = bartdateformat.parse (s) ؛ date3 = bartdatformat.parse (s) null ؛}} main static void main (string [] args) {calendar cal = calendar.getInstance () ؛ test2 test2 = new test2 () ؛ string date1 = joptionpane.showinputdialog ("يرجى إدخال التاريخ ، يكون التنسيق هو 2000-10-15") ؛ بينما (! (Test2.CheckDate (Date1) && test2.isdate (date1)))) {date1 = joptionpane.showinputdialog ("الرجاء إدخال التاريخ ، التنسيق هو 2000-10-15") ؛} simpleatformat bartdateformat1 = new SimpledateMort ( جديد simpleatformat ("yyyy-mm-dd") ؛ Date Date2 = test2.parsedate (date1) ؛ String festinfo = (string) test2.dateinfo (date1) ؛ system.out.println (bartdateformat1.format (date2)+"،"+festinfo+"، اليوم = joptionpane.showInputDialog ("الرجاء إدخال معلومات التاريخ إلى الاستعلام n days") ؛ cal.Settime (date2) ؛ cal.add (calendar.date ، integer.parseint (day)) ؛ String Date5 = BartDateFormat2.format (cal.gettime ()) ؛ festinfo = (سلسلة) test2.dateinfo (date5) ؛ system.out.println (bartdateformat1.format (cal.gettime ())+"،"+fexinfo+"،"لخص
ما ورد أعلاه هو كل التفسير التفصيلي لوقت جافا وتاريخ استخدام رمز الاستعلام في هذه المقالة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!