मुझे क्रेडिट कार्ड की समाप्ति तिथि के लिए एक नई तिथि वस्तु उत्पन्न करने की आवश्यकता है, मेरे पास केवल एक महीने और एक वर्ष है, मैं उन दोनों के आधार पर दिनांक कैसे उत्पन्न कर सकता हूं? मुझे सबसे आसान तरीका संभव है। मैं यहां कुछ अन्य जवाब पढ़ रहा था, लेकिन वे सभी बहुत परिष्कृत लगते हैं।जावा में केवल महीना और वर्ष से तारीख कैसे उत्पन्न करें?
उत्तर
आप java.util.Calendar
इस्तेमाल कर सकते हैं:
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.YEAR, year);
Date date = calendar.getTime();
मैं नई तिथि ("2013-05-01") का उपयोग नहीं कर सकता? मैंने थोड़ी देर में जावा में प्रोग्राम नहीं किया है, लेकिन अधिकांश भाषाओं से, यह ऐसा करने के लिए एक सामान्य समझ तरीका जैसा प्रतीत होता है? – antonpug
सावधानी के एक शब्द के रूप में, दिन का क्षेत्र आज की तारीख पर सेट किया जाएगा। यदि वर्तमान दिन लक्ष्य माह के लिए सीमा के बाहर है तो इच्छित व्यवहार की जांच करें। उदाहरण के लिए, महीने को फरवरी में सेट करें जब 'कैलेंडर' का दिन 30 का दिन हो। दिन और वर्ष सेट करने से पहले दिन को प्रत्येक महीने के लिए एक ज्ञात, वैध मान (उदाहरण: 1) पर सेट करना बुद्धिमान हो सकता है। –
अच्छा बिंदु, सभी डिफ़ॉल्ट मानों को साफ़ करने के लिए बेहतर – Reimeus
तरह
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM");
Date utilDate = formatter.parse(year + "/" + month);
Create a java.util.Date Object from a Year, Month, Day Forma या
शायद की तरहDateTime aDate = new DateTime(year, month, 1, 0, 0, 0);
से कॉपी किया गया से कॉपी किया गया
' डेटटाइम 'जोडा लाइब्रेरी से है। –
संभावित रूप से एक गैर-उत्तर के बाद से आपने java.util.Date
के लिए कहा है, लेकिन यह इंगित करने का एक अच्छा अवसर है कि जावा में दिनांक और समय और कैलेंडर के साथ अधिकांश काम संभवतः Joda-Time लाइब्रेरी के साथ किया जाना चाहिए, इस मामले में
new LocalDate(year, month, 1)
दिमाग में आता है।
जोडा-टाइम में महीने के दिनों के बारे में कई अन्य अच्छी चीजें हैं। उदाहरण के लिए यदि आप वर्तमान महीने के पहले दिन में जानना चाहता था, आप
LocalDate firstOfThisMonth = new LocalDate().withDayOfMonth(1);
अपनी टिप्पणी में लिख सकते हैं आप, java.util.Date
निर्माता के लिए एक स्ट्रिंग गुजर के बारे में पूछने उदाहरण के लिए:
new Date("2012-09-19")
यह कन्स्ट्रक्टर का संस्करण बहिष्कृत है, इसलिए इसका उपयोग न करें। आपको डेट फॉर्मेटर बनाना चाहिए और parse
पर कॉल करना चाहिए। यह अच्छी सलाह है क्योंकि आपके पास year
और month
पूर्णांक मानों के रूप में होगा, और एक अच्छी स्ट्रिंग, ठीक से गद्देदार और सीमांकित करने की आवश्यकता होगी और यह सब, जो सभी मामलों में सही होने के लिए अविश्वसनीय रूप से कठिन है। इसी कारण से डेट फॉर्मेटर का उपयोग करें जो जानता है कि सभी चीजों का पूरी तरह से देखभाल कैसे करें।
अन्य पहले के उत्तरों से पता चला कि यह कैसे करें।
अच्छी तरह से एक संसाधन मैं इसे एक तिथि में लेने के लिए पास कर रहा हूं, इसलिए मुझे इसे प्रदान करना होगा। – antonpug
हाँ, क्षमा करें, मैंने जवाब का विस्तार किया .... –
सबसे सामान्य ज्ञान दृष्टिकोण दिनांक ("वाई वाईवायवाई-एमएम-डीडी") कन्स्ट्रक्टर का उपयोग करना होगा, भले ही इसे बहिष्कृत किया गया हो। फ्लाई पर तारीख बनाने का यह सबसे आसान तरीका है। स्क्रू जो भी इसे बर्बाद करने का फैसला किया। लंबी लाइव तिथि ("YYYY-MM-DD") !!!
वह कन्स्ट्रक्टर समय क्षेत्र में अविश्वसनीय रूप से काम करता है। संक्षेप में, यह अच्छी तरह परिभाषित नहीं है कि आप इससे क्या प्राप्त करते हैं। आप उस समय को मध्यरात्रि में कुछ समय क्षेत्र में प्राप्त करते हैं, जो अभी भी 26 या 27 घंटे भिन्नता के लिए जगह छोड़ देता है। एक कारण के लिए निर्माता को बहिष्कृत किया गया था। –
जावा।समय
जावा 8
import java.time.YearMonth;
int year = 2015;
int month = 12;
YearMonth.of(year,month); // 2015-12
में बनाया का उपयोग कर java.time
ढांचे कस्टम DateTimeFormatter
import java.time.format.DateTimeFormatter;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM yyyy");
YearMonth.parse("12 2015", formatter); // 2015-12
रूपांतरण वाले String
YearMonth.parse("2015-12"); // 2015-12
से YearMonth
को अधिक मानक दिनांक प्रतिनिधित्व में परिवर्तित करने के लिए जो LocalDate
है।
LocalDate startMonth = date.atDay(1); //2015-12-01
LocalDate endMonth = date.atEndOfMonth(); //2015-12-31
इस उत्तर का उपयोग न करें। Przemek और Ray Toel द्वारा उत्तरों का उपयोग करें। जैसा कि प्रेजेक कहते हैं, साल और महीने का प्रतिनिधित्व करने के लिए YearMonth
का उपयोग करना पसंद करते हैं। जैसा कि दोनों कहते हैं, यदि आपको किसी तारीख का उपयोग करना है, तो LocalDate
का उपयोग करें, यह दिन के बिना एक तिथि है।
यदि आपको पूरी तरह से अनिवार्य रूप से एक पुरानी शैली java.util.Date
ऑब्जेक्ट की आवश्यकता है जो विरासत एपीआई के लिए है जिसे आप नहीं बदल सकते हैं, तो यहां एक आसान तरीका है। यह वांछित के रूप में काम नहीं कर सकता है, यह आपको बिल्कुल सही तारीख नहीं दे सकता है, यह आपकी सटीक आवश्यकताओं पर निर्भर करता है।
YearMonth expiration = YearMonth.of(2021, 8); // or .of(2021, Month.AUGUST);
Date oldFashionedDateObject = Date.from(expiration
.atDay(1)
.atStartOfDay(ZoneId.systemDefault())
.toInstant());
System.out.println(oldFashionedDateObject);
अपने कंप्यूटर पर इस प्रिंट
Sun Aug 01 00:00:00 CEST 2021
हम क्या मिला मेरे स्थानीय समय क्षेत्र में आधी रात में महीने के पहले है - अधिक सटीक, मेरी JVM की समय क्षेत्र सेटिंग। यह आपकी अच्छी विरासत एपीआई की अपेक्षा करता है कि यह एक अच्छा अनुमान है, लेकिन यह भी खतरनाक है। JVM की समय क्षेत्र सेटिंग प्रोग्राम के अन्य हिस्सों या उसी JVM में चल रहे अन्य प्रोग्रामों द्वारा हमारे पैरों के नीचे बदला जा सकता है। दूसरे शब्दों में, हम वास्तव में यह सुनिश्चित नहीं कर सकते कि हमें क्या मिलता है।
समय क्षेत्र समस्या तब भी बदतर हो जाती है जब किसी कंप्यूटर पर दिनांक अलग-अलग समय क्षेत्र चलाया जाता है, जैसे क्लाइंट से सर्वर या इसके विपरीत, या अपने समय क्षेत्र को चलाने वाले डेटाबेस में। आपके Date
पिछले महीने में एक समय के रूप में आ जाएगा लगभग 50% जोखिम है।
यदि आप अंत में आवश्यक समय क्षेत्र जानते हैं, तो यह उपरोक्त स्निपेट में सिस्टम डिफ़ॉल्ट के बजाय उदाहरण ZoneId.of("America/New_York")
निर्दिष्ट करने में मदद करेगा।
यदि आपका एपीआई कमजोर है और आपको सही माह के भीतर कुछ बिंदु की आवश्यकता है, तो आप इसे अपने समय क्षेत्र में यूटीसी या महीने के तीसरे महीने के दूसरे महीने देने से बेहतर होंगे। यहां बताया गया है कि पूर्व कैसे करें:
Date oldFashionedDateObject = Date.from(expiration
.atDay(2)
.atStartOfDay(ZoneOffset.UTC)
.toInstant());
- 1. डब्ल्यूपीएफ टूलकिट डेटपिकर महीना/वर्ष केवल
- 2. SQL सर्वर 2008 में केवल महीना और वर्ष संग्रहीत करना?
- 3. डेटीमेपिकर को महीना और वर्ष केवल प्रारूप में कैसे सेट करें?
- 4. दिन और महीना (वर्ष के बिना)
- 5. एसक्यूएल वर्तमान महीना/वर्ष प्रश्न
- 6. जावास्क्रिप्ट: यूनिक्स टाइमस्टैम्प से महीना/वर्ष/दिन प्राप्त करें
- 7. आईओएस में डेटपिकर को केवल महीना और वर्ष चुनने के लिए
- 8. सिस्टम दिनांक और विभाजित दिन, महीना और वर्ष
- 9. दिन, महीने और वर्ष से एनएसडीएट उत्पन्न करें
- 10. तारीख अपडेट mysql में + एक वर्ष
- 11. तारीख केवल
- 12. जावा: JPQL तारीख समारोह एक और तारीख
- 13. पायथन प्रश्न: वर्ष और वर्ष का दिन?
- 14. चालू माह और तारीख jQuery
- 15. डेटटाइमफ़िल्ल्ड से वर्ष, महीना, दिन, घंटा और मिनट निकालने के लिए कैसे?
- 16. कैसे केवल तारीख प्रिंट और नहीं datetime.datetime.strptime()
- 17. PostgreSql + दिनांक प्रारूप YYYY-MM-DD को दिन में परिवर्तित करें, दिनांक महीना वर्ष
- 18. रेल ऐप में वर्ष कैसे स्टोर करें
- 19. किसी क्षेत्र का महीना चुनें
- 20. केवल महीने और वर्ष के साथ दिनांक फ़ील्ड बनाना - ड्रूपल
- 21. बदलें दिनांक स्वरूप डी डी भेजिए/महीना/वर्ष
- 22. एक्सेस डेटाबेस में किसी अंक से महीना नाम प्राप्त करें?
- 23. महीनों या वर्ष
- 24. वर्ष और सप्ताह php
- 25. जावा में ध्वनि प्रभाव कैसे उत्पन्न करें?
- 26. एक से और तारीख
- 27. वर्ष
- 28. बदलें दिनांक स्वरूप (DB या उत्पादन में) डी डी भेजिए/महीना/वर्ष - PHP MySQL
- 29. किसी दिनांक वस्तु से वर्ष/माह/दिन कैसे प्राप्त करें?
- 30. वर्ष और महीने के साथ तिथि वस्तु केवल
आप दिन के लिए 1 और 31 के बीच किसी भी अंक का उपयोग क्यों नहीं करते हैं, उदाहरण के लिए 1? – krackmoe
बस नई तारीख ("2013-04-01")? – antonpug
नहीं, आपको कैलेंडर या ग्रेगोरियन कैलेंडर का उपयोग करना होगा। लेकिन आप दिन, महीने, वर्ष के साथ सेट कर सकते हैं: सेट (int वर्ष, int month, int date) और getTime() के साथ आपको दिनांक वस्तु वापस मिलती है – krackmoe