जावा -8 से पहले मैं हमेशा एपोक के बाद से मिलीसेकंड के रूप में संबंधित तारीख/समय रखने के आदी हो गया था और केवल मानव पठनीय तिथियों/समय के साथ, यानी यूआई या लॉग फ़ाइल में, या उपयोगकर्ता द्वारा उत्पन्न किए गए पार्सिंग के साथ कभी भी सौदा करता था इनपुट।जावा 8 युग-मिलिस टाइम स्टैम्प स्वरूपित तिथि, कैसे?
मुझे लगता है कि यह जावा -8 के साथ अभी भी सुरक्षित है, और अब मैं मिलीसेकंड टाइम स्टैंप से स्वरूपित दिनांक प्राप्त करने का सबसे संक्षिप्त तरीका ढूंढ रहा हूं। मैं Instant.getLong(...)
जो मैं आधा समझ में Unsupported field: YearOfEra
साथ
df = Dateformatter.ofPattern("...pattern...");
df.format(Instant.ofEpochMilli(timestamp))
की कोशिश की लेकिन यह बम बाहर। अब Instant
के बजाय क्या उपयोग करना है?
LocalDateTime.ofEpoch(Instant, ZoneId)
गलत लगता है, क्योंकि मुझे स्थानीय समय की परवाह नहीं है। मैं फॉर्मेटर को लागू करते समय स्थानीय समय क्षेत्र देखना चाहता हूं। आंतरिक रूप से यह केवल Instant
होना चाहिए।
वही ZonedDateTime.ofInstant(Instant, ZoneId)
के लिए जाता है, मैंने प्रारूपण करते समय केवल ZoneId
लागू करने के लिए सोचा था। लेकिन मुझे लगता है कि DateTimeFormatter
अब समय क्षेत्र के साथ सौदा नहीं करता है, ऐसा लगता है, इसलिए मुझे लगता है कि मुझे उपरोक्त में से किसी एक का उपयोग करने की आवश्यकता है।
कौन सा पसंदीदा है और क्यों? या क्या मुझे समय क्षेत्र के साथ दिनांक/समय के रूप में एक युग-मिलिस टाइम स्टैम्प को प्रारूपित करने के लिए एक और तरीका उपयोग करना चाहिए?