java - Hours corrupted when subtract one day from GregorianCalendar -


मैं निम्न कोड का उपयोग करता हूं:

  कैलेंडर कैलेंडर = नया ग्रेगोरियन कैलेंडर (0,0, 0); कैलेंडर.सेट (कैलेंडर.आईईईआर, 1 9 42); कैलेंडर.सेट (कैलेंडर। MONTH, 3); कैलेंडर.सेट (कैलेंडर। DAY_OF_MONTH, 4); दिनांक 1 तारीख = कैलेंडर.getTime (); Calendar.add (कैलेंडर। DAY_OF_MONTH, -1); तिथि 2 तारीख = कैलेंडर.getTime (); System.out.println (दिनांक 1 + "\ n" + दिनांक 2);  

यह कोड आउटपुट इस प्रकार है:

  शनि 04 अप्रैल 00:00:00 ईस्ट 1 9 42 शुक्र अप्रैल 03 01:00:00 ईस्ट 1 9 42  

असल में मैं 1 दिन घटाता हूं और समय को संरक्षित किया जाना चाहिए। लेकिन क्यों उत्पादन की दूसरी पंक्ति में समय 1 घंटा है, जबकि 0 होना चाहिए?

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

वर्तमान में मैं अपने कोड को यूरोप / हेलसिंकी टाइमज़ोन।

मुझे लगता है कि आप फिनिश टाइम ज़ोन का उपयोग कर रहे हैं। फ़िनलैंड में, डेलाइट सेविंग टाइम को 1 9 42 में 2 अप्रैल, 23:59:59 से अप्रैल 3, 1:00 बजे तक समायोजित कर दिया गया था। 3 अप्रैल, 0:00:00 से 0:59:59 समय अवधि मौजूद नहीं है, इसलिए जावा कैलेंडर एक बेहतरीन प्रयास परिणाम बनाता है।


Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -