जावा - दिनांक और समय

जावा प्रदान करता है Date में उपलब्ध वर्ग java.util पैकेज, यह वर्ग वर्तमान तिथि और समय को अलग करता है।

निम्न तालिका में दिखाए अनुसार दिनांक वर्ग दो निर्माणकर्ताओं का समर्थन करता है।

अनु क्रमांक। कंस्ट्रक्टर और विवरण
1

Date( )

यह निर्माता वर्तमान दिनांक और समय के साथ ऑब्जेक्ट को इनिशियलाइज़ करता है।

2

Date(long millisec)

यह कंस्ट्रक्टर एक तर्क को स्वीकार करता है, जो 1 जनवरी, 1970 की आधी रात के बाद से गिने हुए मिलीसेकंड की संख्या के बराबर है।

दिनांक वर्ग के तरीके निम्नलिखित हैं।

अनु क्रमांक। विधि और विवरण
1

boolean after(Date date)

यदि रिटर्न करने वाली दिनांक ऑब्जेक्ट में कोई दिनांक है जो बाद में दिनांक द्वारा निर्दिष्ट की गई तारीख से भिन्न है, तो सही है, अन्यथा, यह गलत है।

2

boolean before(Date date)

यदि रिटर्न करने वाली दिनांक ऑब्जेक्ट में वह दिनांक है, जो किसी दिनांक से पहले निर्दिष्ट की गई तिथि से भिन्न है, तो सही है, अन्यथा, यह गलत है।

3

Object clone( )

लागू दिनांक ऑब्जेक्ट को डुप्लिकेट करता है।

4

int compareTo(Date date)

उस दिनांक के साथ लागू वस्तु के मूल्य की तुलना करता है। मान बराबर होने पर 0 देता है। यदि नकारात्मक वस्तु पहले की तुलना में पुरानी है, तो नकारात्मक मान लौटाता है। एक सकारात्मक मान लौटाता है यदि आह्वान करने वाली वस्तु बाद की तारीख में हो।

5

int compareTo(Object obj)

यदि ओबीजी वर्ग तिथि का है, तो तुलनात्मक रूप से संचालन (तिथि) किया जाता है। अन्यथा, यह एक ClassCastException फेंकता है।

6

boolean equals(Object date)

अगर रिटर्न दिनांक ऑब्जेक्ट में एक ही समय और दिनांक के रूप में दिनांक द्वारा निर्दिष्ट है, अन्यथा, यह सही है, तो यह सही है।

7

long getTime( )

1 जनवरी, 1970 के बाद से मिले मिलीसेकंड की संख्या लौटाता है।

8

int hashCode( )

वापस आने वाली वस्तु के लिए एक हैश कोड देता है।

9

void setTime(long time)

समय और दिनांक को समय के अनुसार निर्दिष्ट करता है, जो 1 जनवरी, 1970 की आधी रात से मिलीसेकंड में बीता हुआ समय दर्शाता है।

10

String toString( )

लागू दिनांक ऑब्जेक्ट को एक स्ट्रिंग में परिवर्तित करता है और परिणाम लौटाता है।

वर्तमान तिथि और समय प्राप्त करना

जावा में वर्तमान तिथि और समय प्राप्त करने के लिए यह एक बहुत ही आसान तरीका है। आप वर्तमान तिथि और समय को निम्न प्रकार से प्रिंट करने के लिए () पद्धति के साथ एक साधारण दिनांक वस्तु का उपयोग कर सकते हैं -

उदाहरण

import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date using toString()
      System.out.println(date.toString());
   }
}

यह निम्नलिखित परिणाम का उत्पादन करेगा -

उत्पादन

on May 04 09:51:52 CDT 2009

तारीख तुलना

दो तिथियों की तुलना करने के तीन तरीके निम्नलिखित हैं -

  • आप दोनों वस्तुओं के लिए आधी रात, 1 जनवरी, 1970 से बीती हुई मिलीसेकंड की संख्या प्राप्त करने के लिए गेटटाइम () का उपयोग कर सकते हैं और फिर इन दोनों मूल्यों की तुलना कर सकते हैं।

  • आप पहले (), बाद (), और बराबर () के तरीकों का उपयोग कर सकते हैं। क्योंकि महीने की 12 वीं 18 वीं से पहले आती है, उदाहरण के लिए, नई तिथि (99, 2, 12) .before (नई तिथि (99, 2, 18)) सही है।

  • आप तुलना () विधि का उपयोग कर सकते हैं, जिसे तुलनात्मक इंटरफ़ेस द्वारा परिभाषित किया गया है और तिथि द्वारा कार्यान्वित किया गया है।

दिनांक प्रारूपण 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 अक्षर पैटर्न अक्षरों के रूप में आरक्षित हैं, जिन्हें निम्नलिखित के रूप में परिभाषित किया गया है -

चरित्र विवरण उदाहरण
जी युग का सूत्रधार विज्ञापन
y चार अंकों में साल 2001
साल में महीना जुलाई या ० July
महीने में दिन 10
एच AM / PM में घंटे (1 ~ 12) 12
एच दिन में घंटा (0 ~ 23) 22
घंटे में मिनट 30
रों दूसरा मिनट में 55
रों मिलीसेकंड 234
सप्ताह में दिन मंगलवार
वर्ष में दिन 360
एफ महीने में सप्ताह का दिन 2 (जुलाई में दूसरा बुध)
w साल में सप्ताह 40
डब्ल्यू महीने में सप्ताह 1
AM / PM मार्कर बजे
दिन में घंटा (1 ~ 24) 24
AM / PM में घंटे (0 ~ 11) 10
जेड समय क्षेत्र पूर्व मानक समय
' पाठ के लिए बच सीमान्तक
" एकल बोली `

मुद्रण का उपयोग करते हुए दिनांक स्वरूपण

दिनांक और समय स्वरूपण का उपयोग बहुत आसानी से किया जा सकता है printfतरीका। आप दो अक्षर के प्रारूप का उपयोग करते हैं, जिसके साथ शुरू होता हैt और निम्न कोड में दिखाए अनुसार तालिका के अक्षरों में से एक में समाप्त होता है।

उदाहरण

import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date
      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[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display time and date
      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[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display formatted date
      System.out.printf("%s %tB %<te, %<tY", "Due date:", date);
   }
}

यह निम्नलिखित परिणाम का उत्पादन करेगा -

उत्पादन

Due date: February 09, 2004

दिनांक और समय रूपांतरण वर्ण

चरित्र विवरण उदाहरण
सी पूरी तारीख और समय सोम मई 04 09:51:52 सीडीटी 2009
एफ आईएसओ 8601 तारीख 2004/02/09
यूएस प्रारूपित तिथि (माह / दिन / वर्ष) 2004/02/09
टी 24 घंटे का समय 18:05:19
आर 12 घंटे का समय 06:05:19 बजे
आर 24-घंटे का समय, कोई सेकंड नहीं 18:05
Y चार अंकों वाला वर्ष (अग्रणी शून्य के साथ) 2004
y वर्ष के अंतिम दो अंक (अग्रणी शून्य के साथ) 04
सी वर्ष के पहले दो अंक (अग्रणी शून्य के साथ) 20
पूरे महीने का नाम फ़रवरी
संक्षिप्त माह का नाम फ़रवरी
दो अंकों वाला महीना (अग्रणी शून्य के साथ) 02
दो अंकों का दिन (अग्रणी शून्य के साथ) 03
दो अंकों का दिन (अग्रणी शून्य के बिना) 9
पूरे सप्ताह का नाम सोमवार
संक्षिप्त सप्ताह का नाम सोमवार
जे वर्ष का तीन अंकों वाला दिन (अग्रणी शून्य के साथ) 069
एच 00 और 23 के बीच दो अंकों का घंटा (अग्रणी शून्य के साथ) 18
दो अंकों का घंटा (अग्रणी शून्य के बिना), 0 से 23 के बीच 18
मैं दो अंकों का घंटा (अग्रणी शून्य के साथ), 01 से 12 के बीच 06
एल दो अंकों का घंटा (अग्रणी शून्य के बिना), 1 से 12 के बीच 6
दो-अंकीय मिनट (अग्रणी शून्य के साथ) 05
रों दो-अंकीय सेकंड (अग्रणी शून्य के साथ) 19
एल तीन-अंकीय मिलीसेकंड (अग्रणी शून्य के साथ) 047
एन नौ अंकों के नैनोसेकंड (अग्रणी शून्य के साथ) 047000000
पी अपरकेस सुबह या दोपहर मार्कर बजे
पी लोअरकेस सुबह या दोपहर मार्कर बजे
जेड जीएमटी से आरएफसी 822 संख्यात्मक ऑफसेट -0800
जेड समय क्षेत्र PST
रों 1970-01-01 के बाद से 00:00:00 GMT 1078884319
क्यू 1970-01-01 00:00:00 GMT के बाद से मिलीसेकंड 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); 
      }
   }
}

उपरोक्त कार्यक्रम का नमूना रन निम्नलिखित परिणाम उत्पन्न करेगा -

उत्पादन

1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818

थोड़ी देर सोता रहा

आप अपने कंप्यूटर के जीवनकाल तक एक मिलीसेकंड तक किसी भी समय तक सो सकते हैं। उदाहरण के लिए, निम्नलिखित कार्यक्रम 3 सेकंड के लिए सो जाएगा -

उदाहरण

import java.util.*;
public class SleepDemo {

   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(5*60*10); 
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) {
         System.out.println("Got an exception!"); 
      }
   }
}

यह निम्नलिखित परिणाम का उत्पादन करेगा -

उत्पादन

Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009

मापने का समय समाप्त हो गया

कभी-कभी, आपको मिलीसेकंड में समय को मापने की आवश्यकता हो सकती है। तो चलिए उपरोक्त उदाहरण को एक बार फिर से लिखते हैं -

उदाहरण

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!");
      }
   }
}

यह निम्नलिखित परिणाम का उत्पादन करेगा -

उत्पादन

Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993

ग्रेगोरियन कैलेन्डर क्लास

ग्रेगोरियन कैलेन्डर एक कैलेंडर वर्ग का एक ठोस कार्यान्वयन है जो सामान्य ग्रेगोरियन कैलेंडर को लागू करता है जिसके साथ आप परिचित हैं। हमने इस ट्यूटोरियल में कैलेंडर क्लास पर चर्चा नहीं की है, आप इसके लिए मानक जावा प्रलेखन देख सकते हैं।

getInstance( )कैलेंडर की विधि एक ग्रेगोरियन कैलंडर को डिफ़ॉल्ट लोकेल और टाइम ज़ोन में वर्तमान दिनांक और समय के साथ आरम्भ करती है। ग्रेगोरियन कैलेन्डर दो क्षेत्रों को परिभाषित करता है: AD और BC। ये ग्रेगोरियन कैलेंडर द्वारा परिभाषित दो युगों का प्रतिनिधित्व करते हैं।

ग्रेगोरियन कैलंडर ऑब्जेक्ट्स के लिए कई कंस्ट्रक्टर भी हैं -

अनु क्रमांक। कंस्ट्रक्टर और विवरण
1

GregorianCalendar()

डिफ़ॉल्ट लोकेल के साथ डिफ़ॉल्ट समय क्षेत्र में वर्तमान समय का उपयोग करके एक डिफ़ॉल्ट ग्रेगोरियन कैलेन्डर का निर्माण करता है।

2

GregorianCalendar(int year, int month, int date)

डिफ़ॉल्ट स्थान के साथ डिफ़ॉल्ट समय क्षेत्र में सेट की गई तारीख के साथ एक ग्रेगोरियनकैलर का निर्माण करता है।

3

GregorianCalendar(int year, int month, int date, int hour, int minute)

डिफ़ॉल्ट स्थान के साथ डिफ़ॉल्ट समय क्षेत्र के लिए दिए गए दिनांक और समय सेट के साथ एक ग्रेगोरियनकैलर का निर्माण करता है।

4

GregorianCalendar(int year, int month, int date, int hour, int minute, int second)

डिफ़ॉल्ट स्थान के साथ डिफ़ॉल्ट समय क्षेत्र के लिए दिए गए दिनांक और समय सेट के साथ एक ग्रेगोरियनकैलर का निर्माण करता है।

5

GregorianCalendar(Locale aLocale)

दिए गए स्थान के साथ डिफ़ॉल्ट समय क्षेत्र में वर्तमान समय के आधार पर एक ग्रेगोरियनकैलर का निर्माण करता है।

6

GregorianCalendar(TimeZone zone)

डिफ़ॉल्ट लोकेल के साथ दिए गए टाइम ज़ोन में वर्तमान समय के आधार पर एक ग्रेगोरियनकैलर का निर्माण करता है।

7

GregorianCalendar(TimeZone zone, Locale aLocale)

दिए गए स्थान के साथ दिए गए टाइम ज़ोन में वर्तमान समय के आधार पर एक ग्रेगोरियन कैलेन्डर का निर्माण करता है।

यहाँ ग्रेगोरियन कैलेन्डर वर्ग द्वारा प्रदान की जाने वाली कुछ उपयोगी सहायक विधियों की सूची दी गई है -

अनु क्रमांक। विधि और विवरण
1

void add(int field, int amount)

कैलेंडर के नियमों के आधार पर, दिए गए समय क्षेत्र में समय की निर्दिष्ट (हस्ताक्षरित) राशि जोड़ता है।

2

protected void computeFields()

यूटीसी को समय क्षेत्र मूल्यों के लिए मिलीसेकंड के रूप में परिवर्तित करता है।

3

protected void computeTime()

कैलेंडर को ओवरराइड करता है समय फ़ील्ड मानों को UTC को मिलीसेकंड के रूप में परिवर्तित करता है।

4

boolean equals(Object obj)

एक वस्तु संदर्भ के लिए इस ग्रेगोरियन कैलंडर की तुलना करता है।

5

int get(int field)

दिए गए समय क्षेत्र के लिए मान प्राप्त करता है।

6

int getActualMaximum(int field)

इस क्षेत्र में वर्तमान तिथि को देखते हुए अधिकतम मूल्य वापस कर सकते हैं।

7

int getActualMinimum(int field)

यह फ़ील्ड वर्तमान दिनांक को देखते हुए न्यूनतम मान देता है।

8

int getGreatestMinimum(int field)

भिन्न होने पर दिए गए फ़ील्ड के लिए उच्चतम न्यूनतम मान लौटाता है।

9

Date getGregorianChange()

ग्रेगोरियन कैलेंडर परिवर्तन तिथि प्राप्त होती है।

10

int getLeastMaximum(int field)

यदि दिए गए फ़ील्ड में भिन्नता के लिए न्यूनतम अधिकतम मान देता है।

1 1

int getMaximum(int field)

दिए गए क्षेत्र के लिए अधिकतम मूल्य देता है।

12

Date getTime()

इस कैलेंडर का वर्तमान समय हो जाता है।

13

long getTimeInMillis()

इस कैलेंडर का वर्तमान समय एक लंबा हो जाता है।

14

TimeZone getTimeZone()

समय क्षेत्र हो जाता है।

15

int getMinimum(int field)

दिए गए क्षेत्र के लिए न्यूनतम मूल्य देता है।

16

int hashCode()

ओवरशाइड हैशकोड।

17

boolean isLeapYear(int year)

निर्धारित करता है कि दिया गया वर्ष लीप वर्ष है।

18

void roll(int field, boolean up)

बड़े क्षेत्रों को बदलने के बिना दिए गए समय क्षेत्र पर समय की एक इकाई को जोड़ता या घटाता (ऊपर / नीचे) करता है।

19

void set(int field, int value)

दिए गए मान के साथ समय क्षेत्र सेट करता है।

20

void set(int year, int month, int date)

वर्ष, माह, और दिनांक फ़ील्ड के लिए मान सेट करता है।

21

void set(int year, int month, int date, int hour, int minute)

वर्ष, माह, दिनांक, घंटा और मिनट के लिए मान सेट करता है।

22

void set(int year, int month, int date, int hour, int minute, int second)

वर्ष, माह, तिथि, घंटा, मिनट और दूसरे के लिए मान सेट करता है।

23

void setGregorianChange(Date date)

ग्रेगोरियन कैलेन्डर परिवर्तन तिथि निर्धारित करता है।

24

void setTime(Date date)

दिए गए दिनांक के साथ इस कैलेंडर का वर्तमान समय सेट करता है।

25

void setTimeInMillis(long millis)

इस कैलेंडर के वर्तमान समय को दिए गए लंबे मान से सेट करता है।

26

void setTimeZone(TimeZone value)

दिए गए समय क्षेत्र मान के साथ समय क्षेत्र सेट करता है।

27

String 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;
      // Create a Gregorian calendar initialized
      // with the current date and time in the
      // default locale and timezone.
      
      GregorianCalendar gcalendar = new GregorianCalendar();
      
      // Display current time and date information.
      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));

      // Test if the current year is a leap year
      if(gcalendar.isLeapYear(year)) {
         System.out.println("The current year is a leap year");
      }else {
         System.out.println("The current year is not a leap year");
      }
   }
}

यह निम्नलिखित परिणाम का उत्पादन करेगा -

उत्पादन

Date: Apr 22 2009
Time: 11:25:27
The current year is not a leap year

कैलेंडर वर्ग में उपलब्ध निरंतर की पूरी सूची के लिए, आप मानक जावा प्रलेखन का उल्लेख कर सकते हैं।