Latest web development tutorials

جافا التاريخ الوقت

وتنص تاريخ حزمة java.util الطبقات لتغليف التاريخ والوقت الحالي. وتنص تاريخ درجتين الصانعين إلى مثيل كائن التاريخ.

يستخدم المنشئ الأول التاريخ والوقت الحالي إلى تهيئة الكائن.

Date( )

منشئ الثاني يقبل معلمة، وهو عدد المللي ثانية منذ 1 يناير 1970 من.

Date(long millisec)

بعد إنشاء كائن التاريخ، يمكنك استدعاء الأسلوب التالي.

لا. طريقة والوصف
1 قيمة المنطقية بعد (تاريخ التسجيل)
إذا كان يتم استدعاء هذا الأسلوب عند الكائن التسجيل بعد التاريخ المحدد يعود صحيحا، وإلا فإنها ترجع كاذبة.
2 قيمة المنطقية قبل (تاريخ التسجيل)
إذا كان يتم استدعاء هذا الأسلوب عند الكائن التسجيل قبل الموعد المحدد يعود صحيحا، وإلا فإنها ترجع كاذبة.
3 استنساخ كائن ()
يعود على نسخة من هذا الكائن.
4 الباحث compareTo (تاريخ التسجيل)
قارن هذه الطريقة تسمى عند الكائن التاريخ إلى التاريخ المحدد. العودة 0 عندما اثنين متساوون. استدعاء كائن قبل التاريخ المحدد بإرجاع رقم سالب. استدعاء كائن بعد عودة التاريخ المحدد رقم موجب.
5 الباحث compareTo (كائن الكائنات)
إذا الكائنات هو التسجيل نوع، وهذه العملية أي ما يعادل compareTo (التاريخ). وإلا، فإنه يلقي ClassCastException.
6 متساوين المنطقية (تاريخ كائن)
عند استدعاء هذا الأسلوب وكائن تاريخ يساوي التاريخ المحدد عندما يعود صحيحا، وبخلاف ذلك كاذب.
7 getTime طويلة ()
تقوم بإرجاع عدد المللي ثانية منذ 1 يناير 1970 00:00:00 GMT يمثلها هذا الكائن التسجيل.
8 شفرة التجزئة كثافة العمليات ()
إرجاع قيمة رمز التجزئة لهذا الكائن.
9 setTime باطل (فترة طويلة)

النفس 1 يناير، في وقت لاحق 1970 00:00:00 GMT ميلي ثانية من الوقت لضبط الوقت والتاريخ.
10 toString سلسلة ()
تاريخ التحويل تمثيل كائن سلسلة، وإرجاع السلسلة.

الحصول على التاريخ والوقت الحالي

جافا يحصل على التاريخ والوقت الحالي هو بسيط جدا، استخدم طريقة التسجيل الكائن toString () لطباعة التاريخ والوقت الحالي على النحو التالي:

import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Mon May 04 09:51:52 CDT 2013

مقارنة التواريخ

يستخدم جافا ثلاث طرق لمقارنة التاريخين التالية:

  • استخدام أسلوب getTime () للحصول على تاريخين (1 يناير 1970 من خلال عدد من ميلي ثانية منذ ذلك الحين)، ثم قارن بين القيمتين.
  • استخدام من قبل ()، بعد () والأنداد (). على سبيل المثال، في الشهر الذي سبقه 12 من 18، وتاريخ جديد (99، 2، 12). قبل (تاريخ جديد (99، 2، 18)) إرجاع صحيح.
  • استخدام compareTo () الأسلوب، الذي تم تعريفه من قبل واجهة قابلة للمقارنة، تاريخ الطبقة تنفذ هذه الواجهة.

استخدام SimpleDateFormat إلى تواريخ شكل

الطبقة SimpleDateFormat هي الطريقة التي تراعي لغة لتنسيق ومواعيد تحليل. SimpleDateFormat يسمح لك لتحديد أي مستخدم مخصصة تنسيق التاريخ والوقت لتشغيل. على سبيل المثال:

import java.util.*;
import java.text.*;

public class DateDemo {
   public static void main(String args[]) {

      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

تنسيق الترميز DateFormat بسيط

ويستخدم الوقت سلسلة نمط لتحديد تنسيق الوقت. في هذا الوضع، يتم حجز جميع الرسائل ASCII كما هي محددة رسائل نمط كما يلي:

خطاب وصف مثال
G علامة العصر م
ذ أربع سنوات 2001
M شهر يوليو أو 07
د تاريخ الشهر 10
ح ص / م شكل (1 ~ 12) ساعة 12
H ساعة في اليوم (0-23) 22
م عدد الدقائق 30
الصورة ثواني 55
S ميلي ثانية 234
E يوم من أيام الأسبوع الثلاثاء
D يوم من أيام السنة 360
F في الأسابيع الأولى من شهر أسبوع 2 (ثاني أربعاء في يوليو)
ث خلال الأسابيع القليلة الأولى من العام 40
W في الأسابيع الأولى من الشهر 1
ل AM / PM علامة PM
ك ساعة في اليوم (1-24) 24
K ص / م شكل (0 ~ 11) ساعة 10
ض منطقة زمنية التوقيت الشرقي
" محدد النص محدد
" ونقلت واحدة `

مواعيد تنسيق استخدام printf

طريقة printf يمكن تنسيقها بسهولة الوقت والتاريخ. استخدام شكل من حرفين، ويبدأ مع تي وفي الجدول التالي في نهاية الرسالة. على سبيل المثال:

import java.util.Date;

public class DateDemo {

  public static void main(String args[]) {
     // 初始化 Date 对象
     Date date = new Date();

     // 使用toString()显示日期和时间
     String str = String.format("Current Date/Time : %tc", date );

     System.out.printf(str);
  }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

إذا كنت بحاجة إلى تكرار تاريخ العرض، ثم استخدام هذا الأسلوب لتهيئة كل جزء منه معقد بعض الشيء. وهكذا، يمكنك استخدام أشارت سلسلة تنسيق ليكون مهيأ المعلمة مؤشر.

يجب على الفور٪ وراء، ويجب أن ينتهي للمؤشر و$. على سبيل المثال:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用toString()显示日期和时间
       System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                         "Due date:", date);
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Due date: February 09, 2004

بدلا من ذلك، يمكنك استخدام <العلم. لكنه يظهر تنسيقه من قبل المعلمات لاستخدامها مرة أخرى. على سبيل المثال:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 显示格式化时间
       System.out.printf("%s %tB %<te, %<tY", 
                         "Due date:", date);
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Due date: February 09, 2004

التاريخ والوقت الأحرف تحويل

شخصية وصف مثال
ج التسجيل الكامل والوقت الإثنين 4 مايو 09:51:52 CDT 2009
F ISO تاريخ 8601 2004/02/09
D تنسيق التاريخ الأمريكي (شهر / يوم / سنة) 02/09/2004
تي الوقت 24 ساعة 18:05:19
ص الوقت 12 ساعة 06:05:19
R وقت على مدار 24 ساعة، لا يشمل ثواني 18:05
Y 4 السنة (مع رائد صفر) 2004
ذ بعد عامين (مع رائد صفر) 04
C 2 منذ سنوات (مع رائد صفر) 20
B اسم شهر كامل فبراير
ب الشهر المختصرات فبراير
ن 2 أشهر (مع رائد صفر) 02
د 2 أيام (مع رائد صفر) 03
البريد 2 أيام (بدون الرائدة 0) 9
و الأسبوع الاسم الكامل الإثنين
ل خلال الأسبوع الماضي الإثنين
ي 3 سنوات (مع رائد صفر) 069
H 2 ساعة (مع الصفر)، 00-23 18
ك 2 ساعة (بدون 0 الرائدة)، 0-23 18
أنا 2 ساعة (مع الصفر)، 01-12 06
ل 2 ساعة (بدون 0 الرائدة)، 1-12 6
M 2 دقيقة (مع رائد صفر) 05
S 2 ثانية (مع رائد صفر) 19
L 3 مللي ثانية (مع رائد صفر) 047
N 9 نانو ثانية (مع رائد صفر) 047000000
P استفاد من بعد ظهر يوم العلم PM
ص بعد ظهر يوم شعار صغيرة مساء
ض تعويض من بتوقيت جرينتش في RFC 822 الرقمية -0800
Z منطقة زمنية PST
الصورة عدد الثواني منذ 1970-01-01 00:00:00 GMT 1078884319
س منذ 1970-01-01 00:00:00 سنتا بتوقيت جرينتش رائع 1078884319047

هناك تاريخ ووقت الطبقة مفيدة أخرى. لمزيد من التفاصيل، يمكنك الرجوع إلى الوثائق القياسية للغة جافا.


تحليل سلسلة إلى وقت

الطبقة SimpleDateFormat لديها بعض وسائل إضافية، وخصوصا تحليل ()، التي حاولت اتباع SimpleDateFormat تنسيق تخزين كائن معطى تحليل السلسلة. على سبيل المثال:

import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 

      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 

      Date t; 

      try { 
          t = ft.parse(input); 
          System.out.println(t); 
      } catch (ParseException e) { 
          System.out.println("Unparseable using " + ft); 
      }
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

$ java DateDemo
1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
$ java DateDemo 2007-12-01
2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

جافا نائمة (النوم)

النوم () يجعل الترابط الحالي في حالة ركود (يمنع الترابط الحالي)، وذلك أن استخدام وحدة المعالجة المركزية، والغرض هو الحفاظ على الترابط الحالي وحده تحتل موارد وحدة المعالجة المركزية التي تم الحصول عليها في عملية لترك بعض الوقت للصدفة موضوع آخر التنفيذ.

يمكنك أن تدع النوم برنامج ميلي ثانية واحدة فترة طويلة من الزمن أو إلى أي من حياة جهاز الكمبيوتر الخاص بك. على سبيل المثال، فإن البرنامج التالي ينام ثلاث ثوان:

import java.util.*;
  
public class SleepDemo {
   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(1000*3);   // 休眠3秒
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

قياس الوقت

وفيما يلي مثال يوضح لك كيفية قياس فترات زمنية (في الألف):

import java.util.*;
  
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

الطبقة التقويم

نحن الآن قادرون على تهيئة وخلق كائن التاريخ، ولكن كيف يمكننا تعيين واسترداد جزء محدد منه البيانات التاريخ، مثل ساعات أو أيام أو دقائق؟ كيف يمكننا في هذه الأجزاء من تاريخ زائد أو ناقص ؟ الجواب هو استخدام فئة التقويم.

العديد من الميزات القوية من التقويم تاريخ الطبقة الطبقة، ولكن أيضا في تنفيذ مجمع من تاريخ الفصل.

الطبقة التقويم هي فئة مجردة التي تطبق فئة فرعية معينة من الكائنات في الاستخدام الفعلي، وإنشاء كائنات شفافة للمبرمج يحتاج فقط ليتم إنشاؤه لاستخدام أسلوب getInstance.

إنشاء كائن التقويم يمثل تاريخ النظام الحالي

Calendar c = Calendar.getInstance();//默认是当前日期

إنشاء تاريخ الكائن التقويم المحدد

استخدام تمثل الطبقة التقويم وقت معين، يجب عليك أولا إنشاء كائن التقويم، ومن ثم تعيين المعلمات تاريخ كائن لإكمال.

//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);

تقويم نوع الحقل كائن الفئة

نوع التقويم المستخدمة في هذه الثوابت تمثل معاني مختلفة، وكثير من الفكر وتستخدم هذه الفئة في الواقع داخل جدك

ثابت وصف
Calendar.YEAR سنوات
Calendar.MONTH شهر
Calendar.DATE تاريخ
Calendar.DAY_OF_MONTH الآن، ومطابقة لأهمية المجالات المذكورة أعلاه
Calendar.HOUR 12 ساعة ساعة
Calendar.HOUR_OF_DAY على مدار 24 ساعة ساعة
Calendar.MINUTE دقيقة
Calendar.SECOND في المرتبة الثانية
Calendar.DAY_OF_WEEK يوم من أيام الأسبوع

وضع التقويم المعلومات كائن الفئة

إعدادات تعيين

مثل:

Calendar c1 = Calendar.getInstance();

اتصل:

public final void set(int year,int month,int date)
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12

استخدام إعدادات نوع الحقل

إذا فقط تعيين أحد الحقول، مثل تاريخ قيمة يمكن تعيين باستخدام الطرق التالية:

public void set(int field,int value)

يمثل يتم تعيين C1 الكائن التاريخ إلى 10، يتم إعادة حساب كل القيم الأخرى

c1.set(Calendar.DATE,10);

يمثل يتم تعيين C1 العام الكائن لعام 2008، يتم إعادة حساب كل القيم الأخرى

c1.set(Calendar.YEAR,2008);

معنى خصائص الحقل الأخرى تعيين ذلك

إضافة وضع

Calendar c1 = Calendar.getInstance();

الموعد المستهدف بالإضافة إلى 10 C1، وأعرب عن C1 أيضا بعد 10 يوما من تاريخ، يتم إعادة حساب كل القيم الأخرى

c1.add(Calendar.DATE, 10);

الموعد المستهدف ناقص 10 C1، وأعرب عن C1 أيضا موعدا منذ 10 يوما، سيتم إعادة حساب كل القيم الأخرى

<pre>c1.add(Calendar.DATE, -10);

إضافة أي خصائص الحقل الأخرى لذلك

كائن الفئة التقويم للحصول على المعلومات

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

الطبقة تقويم ميلادي

الطبقة التقويم تطبق التقويم الغريغوري، والطبقة تقويم ميلادي التقويم هو التنفيذ العملي.

مفكرة getInstance () الأسلوب بإرجاع الافتراضي مع اللغة والمنطقة الزمنية الحالية تهيئة كائن تقويم ميلادي. تقويم ميلادي يعرف حقلين: م، وقبل الميلاد. هذه تمثل اثنين من تقويم تعريف العصر.

وفيما يلي عدد قليل من منشئ كائن تقويم ميلادي:

لا. منشئ والوصف
1 تقويم ميلادي ()
عندما يكون لديك المنطقة الزمنية الافتراضية اللغة الافتراضية يبني تقويم ميلادي تيار الافتراضية.
2 تقويم ميلادي (إنتاج العام، الباحث الشهر، تاريخ كثافة العمليات)
عندما يكون لديك المنطقة الافتراضية اللغة الافتراضية يبني تقويم ميلادي مع مجموعة تاريخ معين
3 تقويم ميلادي (إنتاج العام، الباحث الشهر، تاريخ الباحث، الباحث ساعة، الباحث دقيقة)
وجود المنطقة الزمنية الافتراضية اللغة الافتراضية لتقويم ميلادي التركيبات معين إعدادات التاريخ والوقت.
4 تقويم ميلادي (كثافة العمليات السنة والشهر كثافة العمليات، تاريخ الباحث، الباحث ساعة، الباحث دقيقة، الباحث الثاني)
وجود المنطقة الزمنية الافتراضية اللغة الافتراضية لتقويم ميلادي التركيبات معين إعدادات التاريخ والوقت.
5 تقويم ميلادي (لغة aLocale)
عندما يكون لديك لتعيين ناحية اللغة الافتراضية يبني الوقت الحالي تقويم ميلادي مقرها.
6 تقويم ميلادي (منطقة والوقت)
في منطقة وقت معين اللغة الافتراضية بناء تقويم ميلادي على أساس الوقت الحالي.
7 تقويم ميلادي (منطقة التوقيت، لغة aLocale)
في منطقة زمنية معينة نظرا لغة يبني تقويم ميلادي على أساس الوقت الحالي.

وهنا لائحة من الدرجة تقويم ميلادي توفر بعض الطرق المفيدة:

لا. طريقة والوصف
1 إضافة باطلة (حقل كثافة العمليات، مقدار كثافة العمليات )
وفقا للقواعد تقويم محدد (وقعت) كمية من الوقت لمجال تقويمية معينة.
2 محمية computeFields الفراغ ()
التوقيت العالمي تحويل مللي قيمة العتبة
3 محمية computeTime الفراغ ()
تغطي التقويم، تحويل قيم الحقول الوقت إلى UTC كما ميلي ثانية
4 متساوين المنطقية (الكائنات كائن)
يقارن هذا تقويم ميلادي لكائن محدد.
5 الباحث الحصول على (حقل كثافة العمليات)
يحصل على قيمة الوقت في حقل معين
6 الباحث getActualMaximum (كثافة العمليات الميدانية)
إرجاع التاريخ الحالي، الحد الأقصى لقيمة حقل معين
7 الباحث getActualMinimum (كثافة العمليات الميدانية)
إرجاع التاريخ الحالي، الحد الأدنى لقيمة حقل معين
8 الباحث getGreatestMinimum (كثافة العمليات الميدانية)
تقويم ميلادي لإرجاع أعلى قيمة الحد الأدنى للمجال تقويمية معينة.
9 تاريخ getGregorianChange ()
الحصول على تاريخ التغيير الميلادي.
10 الباحث getLeastMaximum (كثافة العمليات الميدانية)
عوائد هذه الحالة تقويم ميلادي حقل تقويمية معينة أدنى قيمة الحد الأقصى
11 الباحث getMaximum (كثافة العمليات الميدانية)
يعود سبيل المثال تقويم ميلادي نظرا أقصى مجال التقويم.
12 تاريخ getTime ()
الحصول على الوقت الزمني الحالي.
13 getTimeInMillis طويلة ()
الحصول على تقويم مع تمثيل صحيح طويل من الوقت الحالي
14 والوقت getTimeZone ()
احصل على المنطقة الزمنية.
15 الباحث getMinimum (كثافة العمليات الميدانية)
العودة إلى الحد الأدنى لقيمة حقل معين.
16 شفرة التجزئة كثافة العمليات ()
إعادة كتابة شفرة التجزئة.
17 منطقية isLeapYear (كثافة العمليات السنة)
يحدد إذا كان سنة معينة هي سنة كبيسة.
18 لفة باطلة (حقل كثافة العمليات، منطقية تصل )
على ارض الملعب معينة من الوقت لإضافة أو طرح وحدة واحدة من الزمن (أعلى / أسفل)، دون تغيير الحقول الكبيرة.
19 مجموعة باطل (حقل كثافة العمليات، قيمة كثافة العمليات )
مع الحقل قيمة وقت معين.
20 مجموعة باطلة (الباحث العام، الباحث الشهر ، تاريخ كثافة العمليات)
تعيين السنة، وقيمة الشهر واليوم.
21 مجموعة باطلة (الباحث العام، الباحث في الشهر ، وتاريخ الباحث، الباحث ساعة، الباحث دقيقة)
تعيين السنة والشهر واليوم والساعة والدقيقة القيمة.
22 مجموعة باطلة (الباحث العام، الباحث في الشهر ، وتاريخ الباحث، الباحث ساعة، الباحث دقيقة، الباحث الثانية)
تعيين السنة، ساعة، دقيقة، وقيم الثاني من الشهر واليوم.
23 setGregorianChange الفراغ (تاريخ التسجيل)
يحدد تاريخ التغيير تقويم ميلادي.
24 setTime باطل (تاريخ التسجيل)
مع مرور الوقت الحالي نظرا الموعد المحدد التقويم و.
25 setTimeInMillis الفراغ (بالمللي الطويل)
مع عدد معين من نوع طويل حان الوقت الحالي مجموعة ميلي ثانية التقويم و.
26 setTimeZone باطل (القيمة والوقت)
مع إعدادات المنطقة الزمنية إلى المنطقة الزمنية الحالية.
27 toString سلسلة ()
بإرجاع سلسلة تمثل التقويم.

أمثلة

import java.util.*;
  
public class GregorianCalendarDemo {

   public static void main(String args[]) {
      String months[] = {
      "Jan", "Feb", "Mar", "Apr",
      "May", "Jun", "Jul", "Aug",
      "Sep", "Oct", "Nov", "Dec"};
      
      int year;
      // 初始化 Gregorian 日历
      // 使用当前时间和日期
      // 默认为本地时间和时区
      GregorianCalendar gcalendar = new GregorianCalendar();
      // 显示当前时间和日期的信息
      System.out.print("Date: ");
      System.out.print(months[gcalendar.get(Calendar.MONTH)]);
      System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
      System.out.println(year = gcalendar.get(Calendar.YEAR));
      System.out.print("Time: ");
      System.out.print(gcalendar.get(Calendar.HOUR) + ":");
      System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
      System.out.println(gcalendar.get(Calendar.SECOND));
      
      // 测试当前年份是否为闰年
      if(gcalendar.isLeapYear(year)) {
         System.out.println("当前年份是闰年");
      }
      else {
         System.out.println("当前年份不是闰年");
      }
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Date: Apr 22 2009
Time: 11:25:27
当前年份不是闰年