2012-01-12 15 views
8

मुझे यह समस्या है।ग्रोवी आज की तारीख को 00:00:00

  • प्राप्त आज की तारीख
  • एक नई तिथि आज 00:00:00
  • में एक और तारीख 23:59 बजे आज की तारीख हो जाएगा जो बनाने के लिए किया जाएगा जो करना: मैं निम्नलिखित कार्य करने होंगे: 59

उदाहरण के लिए। आज दिनांक 12 जनवरी 2012 19:00

है कैसे मैं यह आसान लगता है, हो सकता है जो 12 जनवरी 2012 00:00 (वर्तमान दिन के शुरू)

हो जाएगा, एक नई तिथि बना सकते हैं , लेकिन मुझे यह पाने के लिए कोई groovyway नहीं मिल सका, किसी भी मदद की सराहना की जाएगी।

उत्तर

18

आधी रात उपयोग Date.clearTime (docs) पर तारीख पाने के लिए:।

dateAtMidnight = new Date() 
dateAtMidnight.clearTime() 

(Javadocs JDK < 2.0 ग्रूवी के लिए कर रहे हैं, clearTime() ग्रूवी JDK 2.0 में void घोषित किया जाता है, d = new Date().clearTime() रोकने टिप्पणियाँ संकेत मिलता मूल कार्यक्षमता बहाल किया जा सकता है !, yay)

तुलना के लिए, बजाय <= 23:59:59 का उपयोग कर के, < (the next day) का उपयोग करें:

012,
(aDate >= dateAtMidnight) && (aDate < (dateAtMidnight + 1)) 
+0

'Date.clearTime()', एक ग्रूवी JDK विधि है, इसलिए यह संस्करण है मायने रखता है Grails के बजाय ग्रोवी का। ग्रोवी 1.8.2 में यह 'दिनांक' –

+0

@ डॉन राइट देता है, और 2.0 में यह शून्य है। यकीन नहीं है कि चर्चा में कैसे grails मिल गया। –

+0

@ डेव न्यूटन यह मेरी तारीख पर वापस जा रहा है, मुझे लगता है कि उन लोगों के साथ बातचीत हुई जिन्होंने ग्रोवी 2 'डेटडिफॉल्ट मोड' के लिए रिफैक्टरिंग की थी और यह एक निरीक्षण की तरह दिखता है कि यह 'शून्य' –

1

एक वैकल्पिक तरीका है, लेकिन यह datetime सेट (लेकिन यह तारीख महज नहीं मिलता है)

dateAtMidnight = new Date() dateAtMidnight.set(hourOfDay: 0, minute: 0, second: 0)

संबंधित मुद्दे