Java getHours (), getMinutes () और getSeconds ()


81

मुझे पता है getHours(), getMinutes()और getSeconds()सभी जावा में पदावनत कर रहे हैं और वे बदल दिए जाते हैं Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND

ये वास्तव में उस विशेष क्षण के लिए घंटे, मिनट और दूसरा लौटाएंगे। हालाँकि, मैं दिनांक चर से घंटे और मिनट को पुनः प्राप्त करना चाहूंगा। उदाहरण के लिए,

डेटाबेस से पुनर्प्राप्त समय है

time = Thu Jan 01 09:12:18 CET 1970;

int hours = time.getHours();
int minutes = time.getMinutes();
int seconds = time.getSeconds();

घंटे, मिनट और सेकंड प्राप्त करके, मुझे मिलता है

hours = 9
minutes = 12
seconds = 18

तो, मैं इस फ़ंक्शन के लिए कैलेंडर का उपयोग कैसे करूं? हालांकि getHours()इसे हटा दिया गया है लेकिन यह अभी भी काम कर रहा है। मैं अब भी जानना चाहूंगा कि क्या इसका कोई विकल्प है।

जवाबों:


179

इसे इस्तेमाल करे:

Calendar calendar = Calendar.getInstance();
calendar.setTime(yourdate);
int hours = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);

संपादित करें:

hours, minutes, seconds

yourdateसिस्टम टाइमज़ोन में परिवर्तित होने के बाद ऊपर घंटे, मिनट और सेकंड होंगे !


1
इसके अलावा, यदि आपको टाइमज़ोन सेट करने की आवश्यकता है, तो TimeZone tz = TimeZone.getTimeZone ("UTC") जोड़ें; // ... init कैलेंडर Calendar.setTimeZone (tz); <कोड>
स्वराज

33

जावा 8

    System.out.println(LocalDateTime.now().getHour());       // 7
    System.out.println(LocalDateTime.now().getMinute());     // 45
    System.out.println(LocalDateTime.now().getSecond());     // 32

पंचांग

System.out.println(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));  // 7 
System.out.println(Calendar.getInstance().get(Calendar.MINUTE));       // 45
System.out.println(Calendar.getInstance().get(Calendar.SECOND));       // 32

Joda समय

    System.out.println(new DateTime().getHourOfDay());      // 7
    System.out.println(new DateTime().getMinuteOfHour());   // 45
    System.out.println(new DateTime().getSecondOfMinute()); // 32

प्रारूपित

जावा 8

    // 07:48:55.056
    System.out.println(ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_TIME));
    // 7:48:55
    System.out.println(LocalTime.now().getHour() + ":" + LocalTime.now().getMinute() + ":" + LocalTime.now().getSecond());

    // 07:48:55
    System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));

    // 074855
    System.out.println(new SimpleDateFormat("HHmmss").format(Calendar.getInstance().getTime()));

    // 07:48:55 
    System.out.println(new Date().toString().substring(11, 20));

वी उपयोगी कुंद: वे आज की तारीख / समय प्रणाली के सबसे आम सेट हैं।
StephenBoesch

1
लेकिन यह एकल अंक में घंटे और मिनट प्रदर्शित करता है। क्या यह संभव है कि दो अंक
फीनिक्स

9

एक समय के अंतर के लिए, ध्यान दें कि कैलेंडर 01.01.1970, 01:00 से शुरू होता है, 00:00 पर नहीं। यदि आप java.util.Date और java.text.SimpleDateFormat का उपयोग कर रहे हैं, तो आपको 1 घंटे के लिए क्षतिपूर्ति करनी होगी:

long start = System.currentTimeMillis();
long end = start + (1*3600 + 23*60 + 45) * 1000 + 678; // 1 h 23 min 45.678 s
Date timeDiff = new Date(end - start - 3600000); // compensate for 1h in millis
SimpleDateFormat timeFormat = new SimpleDateFormat("H:mm:ss.SSS");
System.out.println("Duration: " + timeFormat.format(timeDiff));

यह प्रिंट करेगा:

अवधि: 1: 23: 45.678


2
वाह। सिर्फ असंभव कैसे तारीख हेरफेर जावा में बनाया जा सकता है।
StephenBoesch
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.