मैं ms-since-1970-timestamp
को टाइमज़ोन (जर्मनी) के साथ दिनांक में कनवर्ट करना चाहता हूं।अजीब जावा टाइमज़ोन दिनांक रूपांतरण समस्या
यहाँ कोड है जो काम के दो वेरिएंट हैं - कम से कम, मैं इसे का उपयोग कर याद है और यह काम किया:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
public class TestDate {
public static void main(String[] args) {
Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("Germany"), Locale.GERMANY);
Date d = new Date();
cal.setTime(d);
System.out.println(String.format("%02d.%02d.%04d %02d:%02d:%02d",
cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.MONTH)+1, cal.get(Calendar.YEAR),
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)));
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss.S");
df.setTimeZone(TimeZone.getTimeZone("Germany"));
System.out.println(df.format(d));
}
}
यह वास्तव में अजीब बात है क्योंकि मैं 2hours की एक समय अंतर की वजह नहीं पा सके ।
यह होना चाहिए: 16:05:20
कोड प्रिंट: 14:05:20
दोनों प्रकारों में।
क्या कोई मेरी मदद कर सकता है और मुझे बता सकता है कि यहां क्या गलत हुआ?
TimeZone.getTimeZone("Germany")
कोई ऐसे समय क्षेत्र आईडी, इसलिए में जावा अपने अनंत ज्ञान केवल आपके यूटीसी वापस जाने के लिए आपको लगता है कि कुछ भी की गलत बताए बिना फैसला करता है:
+1 अच्छी तरह से लिखा सवाल – andyb