यूनिक्स टाइम से जावा कैलेंडर में रूपांतरण

निम्नलिखित मुझे पागल कर रहा है, नीचे दिए गए कोड का उपयोग करते हुए यूनिक्स टाइम 1386230874 को परिवर्तित करते समय मुझे गलत कैलेंडर तिथि क्यों मिल रही है !!

यह 5 दिसंबर 1 9:07:54 2013 होना चाहिए

आउटपुट:

Comment posted on:Sat Jan 17 11:03:50 EST 1970

कोड:

Calendar facebook_created_time_calendar = Calendar.getInstance(TimeZone.getTimeZone("Australia/Sydney"));    
facebook_created_time_calendar.setTimeInMillis(1386230874);
out.print("Comment posted on:");
out.println(facebook_created_time_calendar.getTime());
5
क्या आपने नई तिथि (1234567 ...)। ToString() आज़माया?
जोड़ा लेखक vikingsteve, स्रोत

2 उत्तर

जावा मिलीसेकंद टाइमस्टैम्प के साथ काम करता है, जबकि यूनिक्स टाइम टिकटें आमतौर पर सेकंड में मापा जाता है। सही समय प्राप्त करने के लिए 1000L द्वारा यूनिक्स टाइमस्टैम्प को गुणा करें।

17
जोड़ा
मैंने जो बेवकूफ गलती की थी वह अनियमित के रूप में संग्रहीत 1000 के साथ गुणा किया गया था, जिसके परिणामस्वरूप एक पूर्णांक ओवरफ़्लो होता है। तो 1000 के बाद एल महत्वपूर्ण है क्योंकि यह शाब्दिक को लंबे समय तक बढ़ावा देता है और इस प्रकार एक लंबे परिणाम को मजबूर करता है। (बस उन लोगों के लिए सोच रहा है कि एल क्यों है)
जोड़ा लेखक Karsten Becker, स्रोत

यूनिक्स उपायों की संख्या के रूप में समय ("1386230" सेकेंड [आप setTimeInMillis ] के साथ मिलीसेकंड में सेकेंड चलाते हैं "16.04433" दिन) और युग (1 जनवरी, 1 9 70 + 16.04 दिन 17 जनवरी है यह काम कर रहा है) - तो इसे आजमाएं

facebook_created_time_calendar
    .setTimeInMillis(1386230874L * 1000);
2
जोड़ा