देता है मैं Joda time (1.6) पुस्तकालयों का उपयोग कर रहा हूं और यह गलत समय क्षेत्र, जीएमटी के बजाय ब्रिटिश ग्रीष्मकालीन समय के साथ डेटटाइम ऑब्जेक्ट्स लौटता रहता है।जोडा समय गलत समय क्षेत्र
मेरा विंडोज वर्कस्टेशन (जेडीके 1.6.0_16 चल रहा है) सोचता है कि यह जीएमटी में है और यदि मुझे जेडीके दिनांक/समय कक्षाओं से डिफ़ॉल्ट समय क्षेत्र मिलता है तो यह सही (जीएमटी) है। मुझे हमारे लिनक्स सर्वर पर भी वही व्यवहार मिलता है। मैंने सोचा कि यह जोडा में समय क्षेत्र डेटाबेस फ़ाइलों में एक त्रुटि हो सकती है, इसलिए मैंने नवीनतम डेटाबेस के साथ जार का पुनर्निर्माण किया लेकिन बिना किसी बदलाव के। स्थिर initialiser org.joda.time.DateTimeZone
में मैं देख रहा हूँ System.getProperty("user.timezone")
कॉल "Europe/London"
देता है कि उम्मीद के रूप में के माध्यम से
import java.util.TimeZone;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalTime;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;
public class TimeZoneTest {
public static void main(String[] args) {
DateTimeFormatter timeParser = ISODateTimeFormat.timeParser();
TimeZone timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // "Europe/London"
System.out.println(timeZone.getDisplayName()); // "Greenwich Mean Time"
DateTimeZone defaultTimeZone = DateTimeZone.getDefault();
System.out.println(defaultTimeZone.getID()); //"Europe/London"
System.out.println(defaultTimeZone.getName(0L)); //"British Summer Time"
DateTime currentTime = new DateTime();
DateTimeZone currentZone = currentTime.getZone();
System.out.println(currentZone.getID()); //"Europe/London"
System.out.println(currentZone.getName(0L)); //"British Summer Time"
}
}
डिबगिंग।
वास्तविक समस्या के स्पष्टीकरण प्रदान करने के लिए विस्तारित उत्तर – jitter