2014-11-13 2 views
7

के साथ 1 घंटे तक गलत समय प्राप्त करना हमारे रूस किरायेदार के लिए हम "यूरोप/मॉस्को" टाइमज़ोन का उपयोग कर रहे हैं। लेकिन हमें सही समय से 1 घंटे आगे समय मिल रहा है।यूरोप/मॉस्को टाइमज़ोन

यूरोप/मॉस्को यूटीसी + 3 घंटे है। लेकिन जब मैं यूरोप/मॉस्को टाइमज़ोन के साथ सही समय से 1 घंटा आगे प्राप्त होने वाली प्रिंट तिथि हूं।

धन्यवाद, सैमाला।

+2

कुछ कोड दिखाने करें। –

+0

सार्वजनिक स्थैतिक शून्य मुख्य (अंतिम स्ट्रिंग [] तर्क) { अंतिम टाइमज़ोन tzone = TimeZone.getDefault(); System.out.println ("डिफ़ॉल्ट समय क्षेत्र आईडी -" + tzone.getID()); System.out.println ("डिफ़ॉल्ट समय क्षेत्र ऑफसेट - (" + (tzone.getRawOffset()/60/60/1000) + ") घंटा।"); } मैंने अपनी मशीन टाइमज़ोन मोस्को सेंटपेटर्स बर्ग टाइमज़ोन यूटीसी + 3 सेट किया है। लेकिन उपरोक्त कोड के साथ टाइम टाइमोन ऑफसेट प्रिंटिंग: डिफ़ॉल्ट समय क्षेत्र आईडी - यूरोप/मॉस्को डिफ़ॉल्ट समय क्षेत्र ऑफ़सेट - (4) घंटा। – Syamala

उत्तर

4

मुझे पता है कि अक्टूबर 2014 में रूसी समय क्षेत्र परिभाषाओं के लिए legislative change था; संभावना है कि आपके जेआरई को अभी तक इसके बारे में पता नहीं है।

जावा Timezone Updater Utility आपके लिए इसे ठीक करने में सक्षम होना चाहिए। जैसे-जैसे समय बीतता है, अद्यतन समय क्षेत्र परिभाषाओं को अंततः नए जेआरई में डिफ़ॉल्ट रूप से शामिल किया जाना चाहिए (हालांकि यह स्वीकार्य रूप से आपकी मदद नहीं करता है)।

+0

धन्यवाद, स्कॉट डडले। – Syamala

+0

यदि यह काम करता है, तो कृपया उत्तर स्वीकार करना याद रखें। धन्यवाद! –

2

आप जोडा-टाइम एपीआई का उपयोग कर सकते हैं, संस्करण 2.5 से अधिक की आवश्यकता है। क्योंकि जोडा-टाइम एपीआई संस्करण 2.5 से रूसी समय क्षेत्र में परिवर्तन के बाद टाइमज़ोन डीबी अपडेट करता है।

Date timestamp = sdf.parse("11/17/2014 06:13:19"); 

TimeZone timezone = TimeZone.getTimeZone("Europe/Moscow"); 

DateTimeZone tz = DateTimeZone.forTimeZone(timezone); 

DateTime jodaDateTime = new DateTime(timestamp, tz); 

System.out.println(jodaDateTime.hourOfDay().get()); 
0

कोशिश threeteen

import org.threeten.bp.format.* 
import org.threeten.bp.* 



DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 
String timestamp = dtf.format(ZonedDateTime.ofInstant(Instant.ofEpochMilli(MILLISECONDS_VALUE_HERE), ZoneId.of("Europe/Moscow")); 
1

जावा 8:

System.out.println(LocalDateTime.now(ZoneId.of("Europe/Moscow")) 
      .format(DateTimeFormatter.ofPattern("d.MM.yyyy 'um' HH:mm 'Uhr'"))); 
संबंधित मुद्दे