आप घंटे और मिनट कैसे प्राप्त करते हैं Date.getHours
और Date.getMinutes
पदावनत हो जाते हैं? Google खोज पर मुझे जो उदाहरण मिले, उन्होंने पदावनत विधियों का उपयोग किया।
आप घंटे और मिनट कैसे प्राप्त करते हैं Date.getHours
और Date.getMinutes
पदावनत हो जाते हैं? Google खोज पर मुझे जो उदाहरण मिले, उन्होंने पदावनत विधियों का उपयोग किया।
जवाबों:
मानक java.util.Date कक्षाओं के बजाय Joda Time का उपयोग करने का प्रयास करें । जोडा टाइम लाइब्रेरी में तारीखों को संभालने के लिए बेहतर एपीआई है।
DateTime dt = new DateTime(); // current time
int month = dt.getMonth(); // gets the current month
int hours = dt.getHourOfDay(); // gets hour of day
जोडा टाइम लाइब्रेरी का उपयोग करने के पेशेवरों और विपक्षों के लिए यह प्रश्न देखें ।
Joda Time एक मानक घटक के रूप में Java के कुछ भविष्य के संस्करण में भी शामिल हो सकता है, JSR-310 देखें ।
यदि आपको पारंपरिक java.util.Date और java.util.Calendar क्लासेस का उपयोग करना है, तो उनके JavaDoc की सहायता के लिए देखें ( java.util.Calendar और java.util.Date )।
आप इस तरह के पारंपरिक वर्गों का उपयोग दी गई तारीख से खेतों को लाने के लिए कर सकते हैं।
Date date = new Date(); // given date
Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(date); // assigns calendar to given date
calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format
calendar.get(Calendar.HOUR); // gets hour in 12h format
calendar.get(Calendar.MONTH); // gets month number, NOTE this is zero based!
Javadoc से Date.getHours के लिए
As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY)
इसलिए उपयोग करें
Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
और getMinute के लिए बराबर है।
ZonedDateTime
। इसके बजाय उपयोग करें ।
जबकि मैं Joda-Time का प्रशंसक हूं , Java 8 java.time पैकेज का परिचय देता है जो अंत में एक सार्थक जावा मानक समाधान है! इस लेख को जावा एसई 8 दिनांक और समय , घंटे और मिनटों के बाहर java.time पर अच्छी जानकारी के लिए पढ़ें।
विशेष रूप से, LocalDateTime
कक्षा को देखें।
घंटे और मिनट:
LocalDateTime.now().getHour();
LocalDateTime.now().getMinute();
LocalDateTime.now(ZoneId.of("Asia/Manilla"))
:। now()
स्थिरता के लिए केवल एक बार पढ़ें (दो कॉल के बीच समय बीत जाएगा)। यदि तारीख वास्तव में अप्रासंगिक है, तो LocalTime
भी काम करता है।
ZonedDateTime
वर्ग के बजाय का उपयोग करें LocalDateTime
। साथ LocalDateTime
आप बिना किसी कारण के लिए बहुमूल्य समय क्षेत्र जानकारी को त्यागकर कर रहे हैं, कुछ भी नहीं के साथ प्राप्त की।
ZonedDateTime.now().getHour()
… या…
LocalTime.now().getHour()
ZonedDateTime
जद द्वारा उत्तर अच्छा नहीं बल्कि इष्टतम है। वह उत्तर LocalDateTime
कक्षा का उपयोग करता है । समय क्षेत्र या ऑफ़सेट-यूटीसी की किसी भी अवधारणा को खोने से, वह वर्ग एक पल का प्रतिनिधित्व नहीं कर सकता है।
उपयोग करने के लिए बेहतर है ZonedDateTime
।
ZoneId z = ZoneID.of( "America/Montreal" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
यदि आप ZoneId
तर्क को छोड़ देते हैं, तो किसी को JVM के वर्तमान डिफ़ॉल्ट समय क्षेत्र का उपयोग करके रनटाइम पर निहित किया जाता है।
तो यह:
ZonedDateTime.now()
... इस के रूप में ही है:
ZonedDateTime.now( ZoneId.systemDefault() )
स्पष्ट होने के लिए बेहतर, अपने वांछित / अपेक्षित समय क्षेत्र को पारित करना। रनटाइम के दौरान डिफ़ॉल्ट किसी भी समय बदल सकता है।
यदि महत्वपूर्ण है, तो उपयोगकर्ता के साथ समय क्षेत्र की पुष्टि करें।
ZonedDateTime
घंटे और मिनट के लिए पूछताछ ।
int hour = zdt.getHour() ;
int minute = zdt.getMinute() ;
LocalTime
यदि आप समय क्षेत्र के बिना सिर्फ दिन का समय चाहते हैं, तो निकालें LocalTime
।
LocalTime lt = zdt.toLocalTime() ;
या ZonedDateTime
पूरी तरह से छोड़ें , सीधे जा रहे हैं LocalTime
।
LocalTime lt = LocalTime.now( z ) ; // Capture the current time-of-day as seen in the wall-clock time used by the people of a particular region (a time zone).
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date
, Calendar
, और SimpleDateFormat
।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
आप अपने डेटाबेस से सीधे java.time वस्तुओं का आदान-प्रदान कर सकते हैं । JDBC 4.2 या उसके बाद के JDBC ड्राइवर का अनुपालन करें । तारों की कोई जरूरत नहीं, कक्षाओं की कोई जरूरत नहीं ।java.sql.*
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के परिवर्धन के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval
, YearWeek
, YearQuarter
, और अधिक ।
कैलेंडर का प्रयास करें। एक कैलेंडर-ऑब्जेक्ट प्राप्त करने के लिए getInstance का उपयोग करें। फिर आवश्यक दिनांक सेट करने के लिए setTime का उपयोग करें। अब आप HOUR_OF_DAY जैसे उपयुक्त स्थिरांक के साथ (int फ़ील्ड) का उपयोग कर सकते हैं या आपके द्वारा आवश्यक मानों को पढ़ने के लिए।
http://java.sun.com/javase/6/docs/api/java/util/Calendar.html
int hr=Time.valueOf(LocalTime.now()).getHours();
int minutes=Time.valueOf(LocalTime.now()).getMinutes();
ये फ़ंक्शन घंटे और मिनटों में अंतर मान लौटाएंगे।
java.sql.Time
? निश्चित रूप से कोई कारण नहीं है कि जब आप मिल गए हैं तो उस पुरानी कक्षा को खेलने में लाएं java.time.LocalTime
। आप ओवरकोम्प्लीकेट कर रहे हैं।
getMinutes()
इसमें पदावनत कर दिया गया है (मैं जावा 1.8 का उपयोग कर रहा हूं) और इसे बदल दिया गया हैCalendar.get(Calendar.MINUTE)
SimpleDateFormat का उपयोग करके मिनट और घंटे प्राप्त करने का एक और तरीका है।
SimpleDateFormat formatMinutes = new SimpleDateFormat("mm")
String getMinutes = formatMinutes.format(new Date())
SimpleDateFormat formatHours = new SimpleDateFormat("HH")
String getHours = formatHours.format(new Date())
java.util.Date
, java.util.Calendar
और java.text.SimpleDateFormat
अब विरासत हैं , जावा 8 और बाद में निर्मित java.time कक्षाओं द्वारा दबा दी गई हैं । ओरेकल द्वारा ट्यूटोरियल देखें ।
मैं एड जॉडा टाइम देखने की सलाह दूंगा। http://www.joda.org/joda-time/
मुझे अपनी मोटी परियोजना में एक और पुस्तकालय जोड़ने का डर था, लेकिन यह सिर्फ आसान और तेज और स्मार्ट और भयानक है। इसके अलावा, यह कुछ हद तक मौजूदा कोड के साथ अच्छा खेलता है।
हालांकि मैं ऐसा करने की सिफारिश नहीं करूंगा, लेकिन मुझे लगता है कि यह इंगित करने लायक है कि हालांकि java.util.Date पर कई विधियां हटा दी गई हैं, फिर भी वे काम करते हैं। तुच्छ परिस्थितियों में, उनका उपयोग करना ठीक हो सकता है। इसके अलावा, java.util.Calendar बहुत धीमा है, इसलिए GetMonth और DateYear पर उपयोगी रूप से त्वरित हो सकता है।
java.util.Date
,java.util.Calendar
औरjava.text.SimpleDateFormat
अब विरासत हैं , जावा 8 और बाद में निर्मित java.time कक्षाओं द्वारा दबा दी गई हैं । ओरेकल द्वारा ट्यूटोरियल देखें ।