2009-09-06 11 views
8

वर्तमान में मैं प्राप्त करने के लिए निम्नलिखित कोड का उपयोग कर रहा वर्ष, माह, महीने, घंटे और ग्रूवी में मिनट के दिन:ग्रूवी/Grails तारीख वर्ग - महीने के लिए हो रही दिन

Date now = new Date() 
Integer year = now.year + 1900 
Integer month = now.month + 1 
Integer day = now.getAt(Calendar.DAY_OF_MONTH) // inconsistent! 
Integer hour = now.hours 
Integer minute = now.minutes 
// Code that uses year, month, day, hour and minute goes here 

के दिन के लिए getAt(Calendar.DAY_OF_MONTH) का उपयोग करना इस संदर्भ में माह थोड़ा असंगत लगता है। क्या महीने के दिन को प्राप्त करने का कोई छोटा रास्ता है?

+0

अब आप क्यों कर रहे हैं। प्रिय + 1 9 00? –

+0

मायकोला: नई तिथि() वर्ष वर्तमान में 109 है, इसलिए 1 9 00 को जोड़ने की आवश्यकता है। – knorv

+0

लेकिन आप इसे कुछ 'साल' में क्यों जोड़ते हैं और इसका उपयोग नहीं करते हैं? कोड में बाद में –

उत्तर

11

आप इसे दिन पूर्णांक के लिए महीने के दिन आवंटित करने चाहिए अपने कोड के लिए निम्न जोड़ देते हैं तो:

Integer day = now.date 

यहाँ एक स्टैंड-अलोन है उदाहरण:

def now = Date.parse("yyyy-MM-dd", "2009-09-15") 
assert 15 == now.date 
+0

धन्यवाद! मुझे नहीं पता कि मैं इसे कैसे याद कर सकता हूं! – knorv

+2

शायद आप भयानक एपीआई के कारण इसे याद कर चुके हैं! – Armand

7

क्या ये सभी लाइनें कचरे की तरह नहीं हैं? निम्नांकित दो पंक्तियों को एक groovysh

date = new Date() 
date.getAt(Calendar.DAY_OF_MONTH) 

सांत्वना

def date = new Date() 
def dayOfMonth = date.getAt(Calendar.DAY_OF_MONTH) 
+0

क्या यह एक उत्तर है? – knorv

+0

यह कोड मुझे groovysh कंसोल पर 6 देता है। यदि आप यही चाहते हैं तो यह जवाब है। –

+1

समस्या महीने के दिन प्राप्त नहीं कर रहा है। समस्या इसे लगातार तरीके से कर रही है। – knorv

2

जिस तरह से आप यह क्या कर रहे हैं में अपने वास्तविक कोड में और नहीं इस का उपयोग करने के काम करने के लिए एक ही रास्ता है। जावा डेट ऑब्जेक्ट महीने और दिन स्टोर करता है, लेकिन किसी भी जानकारी को स्टोर नहीं करता है जैसे कि दिया गया महीना कितना समय है या आपका महीना किस दिन है। इस जानकारी को जानने के लिए आपको कैलेंडर क्लास का उपयोग करने की आवश्यकता है।

1

इस संस्करण में काफी संक्षिप्त है:

Calendar.instance.get(Calendar.DAY_OF_MONTH) 
+1

का संदर्भ है, लेकिन इसकी तुलना अन्य लाइनों से करें। मैं इसे करने के लिए एक सतत तरीका की तलाश में था। – knorv

0

आप ग्रूवी में एक Date तरह से सिर्फ महीने के दिन प्राप्त कर सकते हैं यह:

​Date date = new Date() 
int dayOfMonth = date[Calendar.DAY_OF_MONTH] 
संबंधित मुद्दे