दिनांक प्राप्त करें जावा में वर्तमान सिस्टम समय से 4 घंटे कम की तारीख वस्तु कैसे वापस कर सकता हूं?4 घंटे पहले
उत्तर
सरल तरीके से एक:
Date date = new Date(System.currentTimeMillis() - (4 * 60 * 60 * 1000));
हालांकि यह नहीं DST (Daylight Saving Time) ध्यान में रखता है। एक वैकल्पिक Calendar
है:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, -4);
Date date = calendar.getTime();
हालांकि यह एक बहुत बदसूरत एपीआई है। एक वैकल्पिक JodaTime है:
DateTime dateTime = new DateTime().minusHours(4);
Date date = dateTime.toDate(); // If you ever need this...
,, मिलीसेकंड करने के लिए इसे कन्वर्ट 4 घंटे में मिलीसेकेंड की संख्या घटाना इसे वापस कन्वर्ट एक तिथि करने के लिए।
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, -4);
calendar.getTime();
'कैलेंडर। आपका ~ 12 घंटे (एएम/पीएम) आधारित है, 24-घंटे आधारित नहीं है। आप 'कैलेंडर। HOUR_OF_DAY' चाहते हैं। साथ ही, 'कैलेंडर # getInstance() 'फैक्ट्री का उपयोग करके क्षेत्र-विशिष्ट कैलेंडर मैन्युअल रूप से निर्माण करने पर प्राथमिकता दी जाती है। – BalusC
@ बालससी: ठीक किया गया। –
उपयोग एक Calendar
वस्तु और add
विधि।
calendar.add(Calendar.HOUR, -4);
देखें http://download.oracle.com/javase/6/docs/api/java/util/Calendar.html
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR_OF_DAY, -4);
java.util.Date d = c.getTime();
System.out.println(d);
अन्य उत्तर सही हैं, लेकिन मैं आधुनिक जवाब योगदान करना चाहते हैं। आधुनिक समाधान java.time
, आधुनिक जावा दिनांक और समय API का उपयोग करता है।
Instant fourHoursAgo = Instant.now().minus(Duration.ofHours(4));
System.out.println(fourHoursAgo);
यह सिर्फ मुद्रित:
2018-01-31T15:22:21.113710Z
Z
अंत में पता चलता है कि समय UTC में छापा जाता है - यूटीसी शून्य ऑफसेट पर अगर आप करेंगे। Instant
कक्षा Date
के लिए आधुनिक प्रतिस्थापन है, इसलिए मैं आपको इसके साथ चिपकने की सलाह देता हूं। आधुनिक एपीआई आमतौर पर काम करने के लिए इतना अच्छा है, इतना साफ, इतना बेहतर डिजाइन किया गया है।
कृपया ध्यान दें पुस्तकालय वर्ग दे के फायदे के लिए 4 घंटे की घटाव कार्य करें: कोड को पढ़ने के लिए स्पष्ट और त्रुटि-रहित होता है। कोई मज़ेदार स्थिरांक नहीं, और कोई पाठक यह जांचने के लिए समय नहीं लेता कि वे सही हैं या नहीं।
आप, एक पुराने ढंग Date
वस्तु की जरूरत है, उदाहरण के लिए जब एक विरासत एपीआई है कि आप बदल नहीं सकते या बदलने के लिए नहीं करना चाहते, इस तरह परिवर्तित का उपयोग कर हैं:
Date oldfashionedDate = Date.from(fourHoursAgo);
लिंक:Oracle Tutorial trail: Date Time। बेशक इंटरनेट पर अन्य संसाधन भी हैं, कृपया खोजें।
अगली बार डुप्लिकेट उत्तरों पोस्ट करने के बजाय सिर्फ डुप्ली के रूप में बंद करने के लिए वोट दें। – BalusC
अपना पॉइंट देखें, @ बाल्लूसी। अगर मैंने उन्हें सही डुप्लिकेट माना होगा (मेरे दो उत्तरों के बीच एक पर्याप्त ओवरलैप है, लेकिन वे समान नहीं हैं)। –
- 1. पीएचपी प्रिंट एक घंटे पहले
- 2. बैश: पहले 4 कॉलम
- 3. टी-एसक्यूएल डेटडिफ - "पूर्ण घंटे पहले" से विभाजन "
- 4. घंटे
- 5. * उस तालिका में चुनें जहां 24 घंटे पहले डेटाटाइम
- 6. जावास्क्रिप्ट रिश्तेदार समय 24 घंटे पहले आदि समय
- 7. पिछले घंटे
- 8. 1 घंटे
- 9. निकटतम घंटे
- 10. दिन का सभी घंटे
- 11. MySQL समूह द्वारा घंटे
- 12. कुछ शुरुआती घंटे
- 13. 12 घंटे से 24 घंटे समय में कनवर्ट करें
- 14. प्रत्येक 24 घंटे
- 15. टाइमपिकर घंटे 24h
- 16. निकटतम अगले एक घंटे
- 17. हर 25 घंटे क्रोनबॉज?
- 18. डैंगो फ़िल्टर घंटे
- 19. घंटे, मिनट, सेकंड
- 20. पोस्टग्रेस्क्ल अपडेट 1 घंटे
- 21. की गणना "व्यस्त घंटे"
- 22. एसक्यूएल एकल अंक घंटे
- 23. एसक्यूएल परिवर्तित datetime और घटाना घंटे
- 24. निकालने घंटे और POSIXct से सेकंड
- 25. एंटिटी फ्रेमवर्क 4 कोड के साथ एकीकरण परीक्षण पहले SQL सर्वर सीई 4 या SQLite
- 26. सीटीपी 4 कोड में CreateSourceQuery का उपयोग करना पहले
- 27. जावास्क्रिप्ट: स्ट्रिंग में पहले 4 नंबर कैसे प्राप्त करें?
- 28. इकाई फ्रेमवर्क 4.1 डेटाबेस पहले डीबीकॉन्टेक्स्ट टी 4 जेनरेटेड क्लास
- 29. संपत्ति ईएफ 4 कोड पहले कैसे नहीं बनेगा?
- 30. इससे पहले वीएसटीओ 4 में कार्यालय संस्करण निर्धारित करें। आवेदन
यह डीएसटी खाते में क्यों नहीं लेता है? –
पहला तरीका काम करता है, हालांकि मुझे लगता है कि यह कहना बेहतर है कि यह डीएसटी * टाइमज़ोन संक्रमण * खाते में नहीं लेता है। जोडाटाइम का उल्लेख करने के लिए +1। –
@Thor: क्योंकि रनटाइम के दौरान आप पिछले 4 घंटों के दौरान 'System # currentTimeMillis() 'के आधार पर नहीं जानते हैं कि डीएसटी सक्षम/अक्षम किया गया है, तो आप परिणामस्वरूप समय बंद होने का जोखिम उठा सकते हैं। – BalusC