DateTime start = new DateTime().withYear(1884);
System.out.println(start);
System.out.println(start.minusYears(1));
आउटपुटक्यों 1884 से कम वर्ष है, यह कुछ मिलीसेकंड हटा देता है?
1884-01-11T08:26:10.234-08:00
1883-01-11T08:26:10.234-07:52:58
संपादित करें 1: मैं सही नहीं था। इसे हटा दिया नहीं किया 1.02 सेकंड
DateTime start = new DateTime().withYear(1884);
DateTime other = start.minusYears(1);
long diffMs = start.getMillis() - other.getMillis(); //31536422000
संपादित करें 2:
दिलचस्प है, मैं उत्पादन से toString();
के लिए उलझन में था - (-08:00
, -07:52:58
)
संपादित करें 3:
जावा कैलेंडर के साथ , मुझे कोई अंतर नहीं दिख रहा है:
Calendar cal = Calendar.getInstance();
cal.set(start.getYear(),
start.getMonthOfYear(),
start.getDayOfMonth(),
start.getHourOfDay(),
start.getMinuteOfHour(),
start.getSecondOfDay());
System.out.println(cal.getTime());
cal = Calendar.getInstance();
cal.set(start.getYear()- 1,
start.getMonthOfYear(),
start.getDayOfMonth(),
start.getHourOfDay(),
start.getMinuteOfHour(),
start.getSecondOfDay());
System.out.println(cal.getTime());
आउटपुट:
Mon Feb 11 18:46:42 PST 1884
Sun Feb 11 18:46:42 PST 1883
आश्चर्य अगर यह [इस एक] (http://stackoverflow.com/questions/6841333/why-is-subtracting-these-two-times के लिए इसी तरह का एक मुद्दा है -इन -1927-देने-अजीब परिणाम/6841479 # 6841479) –
@ माइक क्रिस्टेनसेन जैसा दिखता है, लेकिन मेरा संपादन देखें, अब मैं वास्तव में उलझन में हूं। मैं सोच रहा हूं कि टूस्ट्रिंग का अंतिम भाग क्यों है .. – JohnJohnGa
अंतिम भाग यूटीसी का ऑफसेट है (इस्तेमाल किए गए समय क्षेत्र पर निर्भर करता है) आपका स्थान 11 जनवरी 1884 को यूटीसी के पीछे 8 घंटे था, लेकिन केवल 7 घंटे, 52 मिनट, समय क्षेत्र के मानकीकृत होने से पहले 58 सेकंड पीछे। –