2013-05-29 5 views
8

मैं Joda Time का उपयोग कर स्थानीय तिथि को यूटीसी में बदलने की कोशिश कर रहा हूं। मैंने जो कोड इस्तेमाल किया है वह नीचे दिखाया गया है और यह बहुत अच्छा काम करता है।जोडाटाइम: स्थानीय रूप से यूटीसी अस्पष्टता में कनवर्ट करें

Date localDate = new Date(); 
System.out.println("Local Date : " + localDate); 

DateTimeZone tz = DateTimeZone.getDefault(); 
Date utcDate = new Date(tz.convertLocalToUTC(localDate.getTime(), false)); 
System.out.println("UTC Date : " + utcDate); 

Output : 
Local Date : Wed May 29 11:54:46 EEST 2013 
UTC Date : Wed May 29 08:54:46 EEST 2013 

लेकिन, अगर मैं DateTimeZone.convertLocalToUTC() विधि को पैरामीटर के रूप यूटीसी तिथि भेजने के लिए, यह भी 3. द्वारा घंटे कम हो जाती है हालांकि, बाद से यह यूटीसी तिथि है, मैं इसे फिर से तारीख कन्वर्ट करने के लिए नहीं की उम्मीद है। क्या यह बग है या मैं कुछ भूल गया हूं?

Date localDate = new Date(); 
System.out.println("Local Date : " + localDate); 

DateTimeZone tz = DateTimeZone.getDefault(); 
Date utcDate = new Date(tz.convertLocalToUTC(localDate.getTime(), false)); 
System.out.println("UTC Date : " + utcDate); 

Date utcDate2 = new Date(tz.convertLocalToUTC(utcDate.getTime(), false)); 
System.out.println("UTC Date 2 : " + utcDate2); 

Output : 
Local Date : Wed May 29 11:54:46 EEST 2013 
UTC Date : Wed May 29 08:54:46 EEST 2013 
UTC Date 2 : Wed May 29 05:54:46 EEST 2013 

उत्तर

2

इसे convertLocalToUTC() विधियों के दृष्टिकोण से देखें। यह सिर्फ long और boolean लेता है। इसमें कोई ज्ञान नहीं है कि जितना समय आप इसे पारित कर रहे हैं वह UTC है या नहीं। यह मानता है कि आप long पास कर रहे हैं जो स्थानीय समय है और तदनुसार इसे समायोजित करता है।

6

प्रति convertLocalToUTC

की जावाडोक के रूप में एक ही स्थानीय समय के साथ एक मानक यूटीसी तत्काल के लिए एक स्थानीय तत्काल रूपांतरित करता है। इस रूपांतरण का उपयोग गणना करने के बाद किया जाता है जहां गणना एक साधारण स्थानीय क्षेत्र का उपयोग करके की गई थी।

तरीके, कोई धारणा या मान्यता है कि तारीख UTC में नहीं है या पारित कर बनाता है यह हमेशा स्थानीय रूप में पारित तारीख पर विचार करने और UTC में धर्मान्तरित। आपका प्रोग्राम आउटपुट सही है।

संबंधित मुद्दे