हम इस ट्यूटोरियल में सीखने वाले है कि जावा दिनांक और समय (Java Date and Time in Hindi) और हम इसे कैसे इस्तमाल कर सकते हैं? जावा java.util पैकेज में उपलब्ध दिनांक वर्ग प्रदान करता है, यह वर्ग वर्तमान दिनांक और समय को समाहित करता है।
दिनांक वर्ग दो कंस्ट्रक्टरों का समर्थन करता है जैसा कि निम्न तालिका में दिखाया गया है।
Sr.No. | Constructor & Description |
1 | Date( ) यह कंस्ट्रक्टर ऑब्जेक्ट को वर्तमान दिनांक और समय के साथ इनिशियलाइज़ करता है। |
2 | Date(long millisec) यह कंस्ट्रक्टर एक तर्क को स्वीकार करता है जो 1 जनवरी, 1970 की आधी रात के बाद से मिलीसेकंड की संख्या के बराबर है। |
Following are the methods of the date class.
Sr.No. | Method & Description |
1 | boolean after(Date date) यदि इनवोकिंग डेट ऑब्जेक्ट में तारीख द्वारा specified date के बाद की तारीख शामिल है, तो सही रिटर्न देता है, अन्यथा, यह गलत रिटर्न देता है। |
2 | boolean before(Date date) अगर इनवोकिंग डेट ऑब्जेक्ट में तारीख द्वारा निर्दिष्ट तारीख से पहले की तारीख है, तो सही रिटर्न देता है, अन्यथा, यह गलत रिटर्न देता है। |
3 | Object clone( ) इनवोकिंग डेट ऑब्जेक्ट को डुप्लिकेट करता है। |
4 | int compareTo(Date date) आह्वान करने वाली object के मूल्य की तुलना Date से करता है। मान समान होने पर 0 लौटाता है। यदि आह्वान object Date से पहले की है तो ऋणात्मक मान लौटाता है। अगर इनवोकिंग ऑब्जेक्ट तारीख के बाद का है, तो एक सकारात्मक मान लौटाता है। |
5 | int compareTo(Object obj) यदि ओबीजे कक्षा Date का है तो तुलना करने के लिए समान रूप से संचालित होता है (दिनांक)। अन्यथा, यह क्लासकास्ट अपवाद फेंकता है। |
6 | boolean equals(Object date) अगर इनवोकिंग डेट ऑब्जेक्ट में वही समय और तारीख है जो तारीख द्वारा निर्दिष्ट है, तो सही रिटर्न देता है, अन्यथा, यह गलत रिटर्न देता है। |
7 | long getTime( ) 1 जनवरी, 1970 से बीत चुके मिलीसेकंड की संख्या लौटाता है। |
8 | int hashCode( ) इनवोकिंग ऑब्जेक्ट के लिए हैश कोड लौटाता है। |
9 | void setTime(long time) समय के अनुसार निर्दिष्ट समय और दिनांक सेट करता है, जो 1 जनवरी, 1970 की मध्यरात्रि से मिलीसेकंड में बीता हुआ समय दर्शाता है। |
10 | String toString( ) इनवोकिंग डेट ऑब्जेक्ट को एक स्ट्रिंग में कनवर्ट करता है और परिणाम देता है। |
वर्तमान दिनांक और समय प्राप्त करना (Getting Current Date and Time)
जावा में वर्तमान दिनांक और समय प्राप्त करने के लिए यह एक बहुत ही आसान तरीका है। आप वर्तमान दिनांक और समय को निम्नानुसार प्रिंट करने के लिए toString () विधि के साथ एक साधारण दिनांक ऑब्जेक्ट का उपयोग कर सकते हैं –
Example
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());
}
}
यह निम्नलिखित परिणाम देगा –
Output
on May 04 09:51:52 CDT 2009
Date Comparison
दो Dateयों की तुलना करने के तीन तरीके निम्नलिखित हैं –
आप दोनों objectओं के लिए 1 जनवरी, 1970 की आधी रात के बाद से मिलीसेकंड की संख्या प्राप्त करने के लिए गेटटाइम () का उपयोग कर सकते हैं और फिर इन दो मूल्यों की तुलना कर सकते हैं।
आप पहले (), बाद (), और बराबर () विधियों का उपयोग कर सकते हैं। क्योंकि महीने की 12 तारीख 18 तारीख से पहले आती है, उदाहरण के लिए, new Date(99, 2, 12).before(new Date (99, 2, 18)) true रिटर्न करती है।
आप तुलना करने के लिए () विधि का उपयोग कर सकते हैं, जिसे तुलनात्मक इंटरफ़ेस द्वारा परिभाषित किया गया है और दिनांक द्वारा कार्यान्वित किया गया है।
दिनांक formatting SimpleDateFormat का उपयोग करना
SimpleDateFormat स्थानीय-संवेदनशील तरीके से दिनांकों को स्वरूपित और पार्स करने के लिए एक ठोस वर्ग है। SimpleDateFormat आपको दिनांक-समय formatting के लिए किसी भी उपयोगकर्ता-परिभाषित पैटर्न को चुनकर प्रारंभ करने की अनुमति देता है।
Example
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));
}
}
यह निम्नलिखित परिणाम देगा –
Output
Current Date: Sun 2004.07.18 at 04:14:09 PM PDT
सरल दिनांक स्वरूप स्वरूप कोड (SimpleDateFormat Format Codes)
समय प्रारूप निर्दिष्ट करने के लिए, समय पैटर्न स्ट्रिंग का उपयोग करें। इस पैटर्न में, सभी ASCII अक्षर पैटर्न अक्षरों के रूप में आरक्षित होते हैं, जिन्हें निम्नलिखित के रूप में परिभाषित किया जाता है –
Character | Description | Example |
G | Era designator | AD |
y | Year in four digits | 2001 |
M | Month in year | July or 07 |
d | Day in month | 10 |
h | Hour in A.M./P.M. (1~12) | 12 |
H | Hour in day (0~23) | 22 |
m | Minute in hour | 30 |
s | Second in minute | 55 |
S | Millisecond | 234 |
E | Day in week | Tuesday |
D | Day in year | 360 |
F | Day of week in month | 2 (second Wed. in July) |
w | Week in year | 40 |
W | Week in month | 1 |
a | A.M./P.M. marker | PM |
k | Hour in day (1~24) | 24 |
K | Hour in A.M./P.M. (0~11) | 10 |
z | Time zone | Eastern Standard Time |
‘ | Escape for text | Delimiter |
“ | Single quote | ` |
दिनांक formatting प्रिंटफ का उपयोग करना (Date Formatting Using printf)
प्रिंटफ विधि का उपयोग करके दिनांक और समय formatting बहुत आसानी से किया जा सकता है। आप एक दो-अक्षर प्रारूप का उपयोग करते हैं, जो टी से शुरू होता है और तालिका के अक्षरों में से एक में समाप्त होता है जैसा कि निम्न कोड में दिखाया गया है।
Example
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);
}
}
यह निम्नलिखित परिणाम देगा –
Output
Current Date/Time : Sat Dec 15 16:37:57 MST 2012
यह थोड़ा मूर्खतापूर्ण होगा यदि आपको प्रत्येक भाग को प्रारूपित करने के लिए कई बार तारीख की आपूर्ति करनी पड़े। उस कारण से, एक प्रारूप स्ट्रिंग स्वरूपित किए जाने वाले तर्क के सूचकांक को इंगित कर सकती है।
इंडेक्स को तुरंत % का पालन करना चाहिए और इसे $ द्वारा समाप्त किया जाना चाहिए।
Example
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);
}
}
यह निम्नलिखित परिणाम देगा –
Output
Due date: February 09, 2004
वैकल्पिक रूप से, आप <ध्वज का उपयोग कर सकते हैं। यह इंगित करता है कि पूर्ववर्ती प्रारूप विनिर्देश के समान तर्क का फिर से उपयोग किया जाना चाहिए।
Example
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);
}
}
यह निम्नलिखित परिणाम देगा –
Output
Due date: February 09, 2004
Date and Time Conversion Characters
Character | Description | Example |
c | Complete date and time | Mon May 04 09:51:52 CDT 2009 |
F | ISO 8601 date | 2004-02-09 |
D | U.S. formatted date (month/day/year) | 02/09/2004 |
T | 24-hour time | 18:05:19 |
r | 12-hour time | 06:05:19 pm |
R | 24-hour time, no seconds | 18:05 |
Y | Four-digit year (with leading zeroes) | 2004 |
y | Last two digits of the year (with leading zeroes) | 04 |
C | First two digits of the year (with leading zeroes) | 20 |
B | Full month name | February |
b | Abbreviated month name | Feb |
m | Two-digit month (with leading zeroes) | 02 |
d | Two-digit day (with leading zeroes) | 03 |
e | Two-digit day (without leading zeroes) | 9 |
A | Full weekday name | Monday |
a | Abbreviated weekday name | Mon |
j | Three-digit day of year (with leading zeroes) | 069 |
H | Two-digit hour (with leading zeroes), between 00 and 23 | 18 |
k | Two-digit hour (without leading zeroes), between 0 and 23 | 18 |
I | Two-digit hour (with leading zeroes), between 01 and 12 | 06 |
l | Two-digit hour (without leading zeroes), between 1 and 12 | 6 |
M | Two-digit minutes (with leading zeroes) | 05 |
S | Two-digit seconds (with leading zeroes) | 19 |
L | Three-digit milliseconds (with leading zeroes) | 047 |
N | Nine-digit nanoseconds (with leading zeroes) | 047000000 |
P | Uppercase morning or afternoon marker | PM |
p | Lowercase morning or afternoon marker | pm |
z | RFC 822 numeric offset from GMT | -0800 |
Z | Time zone | PST |
s | Seconds since 1970-01-01 00:00:00 GMT | 1078884319 |
Q | Milliseconds since 1970-01-01 00:00:00 GMT | 1078884319047 |
दिनांक और समय से संबंधित अन्य उपयोगी वर्ग हैं। अधिक विवरण के लिए, आप जावा मानक दस्तावेज़ीकरण का उल्लेख कर सकते हैं।
स्ट्रिंग्स को डेट्स में पार्स करना (Parsing Strings into Dates)
SimpleDateFormat वर्ग में कुछ अतिरिक्त विधियाँ हैं, विशेष रूप से पार्स (), जो दिए गए SimpleDateFormat ऑब्जेक्ट में संग्रहीत प्रारूप के अनुसार एक स्ट्रिंग को पार्स करने का प्रयास करता है।
Example
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);
}
}
}
उपरोक्त कार्यक्रम का एक नमूना रन निम्नलिखित परिणाम देगा –
Output
1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818
Sleeping for a While
आप एक मिलीसेकंड से लेकर अपने कंप्यूटर के जीवनकाल तक किसी भी समय तक सो सकते हैं। उदाहरण के लिए, निम्न प्रोग्राम 3 सेकंड के लिए सोएगा –
Example
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!”);
}
}
}
यह निम्नलिखित परिणाम देगा –
Output
Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009
बीता हुआ समय मापना (Measuring Elapsed Time in Hindi)
कभी-कभी, आपको मिलीसेकंड में समय बिंदु को मापने की आवश्यकता हो सकती है। तो चलिए उपरोक्त उदाहरण को एक बार फिर से लिखते हैं –
Example
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!”);
}
}
}
यह निम्नलिखित परिणाम देगा –
Output
Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993
ग्रेगोरियन कैलेंडर वर्ग (GregorianCalendar Class in Hindi)
ग्रेगोरियन कैलेंडर एक कैलेंडर वर्ग का एक ठोस कार्यान्वयन है जो सामान्य ग्रेगोरियन कैलेंडर को लागू करता है जिससे आप परिचित हैं। हमने इस ट्यूटोरियल में कैलेंडर क्लास पर चर्चा नहीं की, आप इसके लिए मानक जावा दस्तावेज़ देख सकते हैं।
कैलेंडर की getInstance () विधि एक ग्रेगोरियन कैलेंडर को डिफ़ॉल्ट स्थान और समय क्षेत्र में वर्तमान दिनांक और समय के साथ प्रारंभ करती है। ग्रेगोरियन कैलेंडर दो क्षेत्रों को परिभाषित करता है: AD और BC। ये ग्रेगोरियन कैलेंडर द्वारा परिभाषित दो युगों का प्रतिनिधित्व करते हैं।
ग्रेगोरियनकैलेंडर ऑब्जेक्ट्स के लिए भी कई कंस्ट्रक्टर हैं –
Sr.No. | Constructor & Description |
1 | GregorianCalendar() डिफ़ॉल्ट लोकेल के साथ डिफ़ॉल्ट समय क्षेत्र में वर्तमान समय का उपयोग करके एक डिफ़ॉल्ट ग्रेगोरियन कैलेंडर बनाता है। |
2 | GregorianCalendar(int year, int month, int date) डिफ़ॉल्ट लोकेल के साथ डिफ़ॉल्ट समय क्षेत्र में निर्धारित Date के साथ एक ग्रेगोरियन कैलेंडर का निर्माण करता है। |
3 | GregorianCalendar(int year, int month, int date, int hour, int minute) डिफ़ॉल्ट लोकेल के साथ डिफ़ॉल्ट समय क्षेत्र के लिए दी गई Date और समय सेट के साथ एक ग्रेगोरियन कैलेंडर बनाता है। |
4 | GregorianCalendar(int year, int month, int date, int hour, int minute, int second) डिफ़ॉल्ट लोकेल के साथ डिफ़ॉल्ट समय क्षेत्र के लिए दी गई Date और समय सेट के साथ एक ग्रेगोरियन कैलेंडर बनाता है। |
5 | GregorianCalendar(Locale aLocale) दिए गए लोकेल के साथ डिफ़ॉल्ट समय क्षेत्र में वर्तमान समय के आधार पर एक ग्रेगोरियन कैलेंडर बनाता है। |
6 | GregorianCalendar(TimeZone zone) डिफ़ॉल्ट लोकेल के साथ दिए गए समय क्षेत्र में वर्तमान समय के आधार पर एक ग्रेगोरियन कैलेंडर बनाता है। |
7 | GregorianCalendar(TimeZone zone, Locale aLocale) दिए गए लोकेल के साथ दिए गए समय क्षेत्र में वर्तमान समय के आधार पर एक ग्रेगोरियन कैलेंडर बनाता है। |
यहां ग्रेगोरियनकैलेंडर वर्ग द्वारा प्रदान की जाने वाली कुछ उपयोगी सहायता विधियों की सूची दी गई है –
Sr.No. | Method & Description |
1 | void add(int field, int amount) कैलेंडर के नियमों के आधार पर दिए गए समय क्षेत्र में निर्दिष्ट (हस्ताक्षरित) समय जोड़ता है। |
2 | protected void computeFields() यूटीसी को मिलीसेकंड के रूप में टाइम फील्ड वैल्यू में कनवर्ट करता है। |
3 | protected void computeTime() कैलेंडर को ओवरराइड करता है समय फ़ील्ड मान को मिलीसेकंड के रूप में UTC में कनवर्ट करता है। |
4 | boolean equals(Object obj) इस ग्रेगोरियन कैलेंडर की तुलना किसी object संदर्भ से करता है। |
5 | int get(int field) किसी दिए गए समय क्षेत्र के लिए मान प्राप्त करता है। |
6 | int getActualMaximum(int field) वह अधिकतम मान लौटाता है, जो इस फ़ील्ड में हो सकता था, वर्तमान Date को देखते हुए। |
7 | int getActualMinimum(int field) वह न्यूनतम मान लौटाता है जो इस फ़ील्ड में हो सकता था, वर्तमान Date को देखते हुए। |
8 | int getGreatestMinimum(int field) भिन्न होने पर दिए गए फ़ील्ड के लिए उच्चतम न्यूनतम मान लौटाता है। |
9 | Date getGregorianChange() ग्रेगोरियन कैलेंडर परिवर्तन दिनांक प्राप्त करता है। |
10 | int getLeastMaximum(int field) भिन्न होने पर दिए गए फ़ील्ड के लिए निम्नतम अधिकतम मान लौटाता है। |
11 | 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) ग्रेगोरियन कैलेंडर परिवर्तन Date सेट करता है। |
24 | void setTime(Date date) दी गई Date के साथ इस कैलेंडर का वर्तमान समय सेट करता है। |
25 | void setTimeInMillis(long millis) इस कैलेंडर का वर्तमान समय दिए गए लंबे मान से सेट करता है। |
26 | void setTimeZone(TimeZone value) दिए गए समय क्षेत्र मान के साथ समय क्षेत्र सेट करता है। |
27 | String toString() इस कैलेंडर का एक स्ट्रिंग प्रतिनिधित्व देता है। |
Example
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”);
}
}
}
यह निम्नलिखित परिणाम देगा –
Output
Date: Apr 22 2009
Time: 11:25:27
The current year लीप वर्ष नहीं है
कैलेंडर वर्ग में उपलब्ध स्थिरांक की पूरी सूची के लिए, आप मानक जावा दस्तावेज़ देख सकते हैं।
हम उम्मीद करते है कि आपको “जावा दिनांक और समय (Java Date and Time in Hindi)” से सम्बंधित जानकारी हिंदी में समझ में आयी होंगी यदि आपको बताई गई जानकारी अच्छी लगी हो तो अपने दोस्तों में ऐसे शेयर करे जिससे उनकी भी हेल्प हो सके धन्यवाद!