2012-02-23 18 views
7
System.out.println(new Date()); 

Thu Feb 23 04:57:57 ACT 2012 

मैं इसे मुख्य विधि में चला रहा हूं। और मेरा सिस्टम वर्तमान समय पीकेटी है। लेकिन यह मुझे ACT समय दे रहा है।क्यों java.util.Date मुझे गलत समय दे रहा है?

कोई विचार? सही सिस्टम का समय कैसे प्राप्त करें?

enter image description here

उत्तर

7

समस्या समय क्षेत्र, नहीं Date मूल्य के साथ ही प्रतीत होता है। आज की तारीख को प्रिंट के बजाय, वर्तमान समय क्षेत्र बाहर मुद्रित करने के लिए कुछ इस तरह का उपयोग करें:

import java.util.TimeZone ; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     TimeZone zone = TimeZone.getDefault(); 
     System.out.println(zone.getDisplayName()); 
     System.out.println(zone.getID()); 
    } 
} 

उदाहरण के लिए, मेरे लिए है कि प्रिंट:

Greenwich Mean Time 
Europe/London 

एक बार जब आप क्या बारे में अधिक विवरण जावा आपके डिफ़ॉल्ट समय क्षेत्र को सोचता है, आप की तलाश शुरू कर सकते हैं क्यों यह सोचता है कि। क्या आप जावा चला रहे हैं के बारे में कुछ भी है जो गैर-मानक है? कोई भी पर्यावरण चर जो संदिग्ध रूप से गलत समय क्षेत्र की तरह दिखता है?

तुम भी बाहर निम्न सिस्टम गुण है, जो समय क्षेत्र के निर्धारित करने में इस्तेमाल कर रहे मुद्रित करने के लिए चाहते हो सकता है:

user.timezone 
user.country 
java.home 

(उन्हें बाहर प्रिंट सामान्य समय क्षेत्र होने से पहले - user.timezone भाग के रूप में सेट किया गया है यह प्राप्त करने में कठिनाई है, अगर यह पहले सेट नहीं था की।)

+0

अजीब। मैं इस कार्यक्रम को चलाता हूं और यह मुझे एकड़ समय अमेरिका/Rio_Branco देता है। जहां मेरा विंडोज़ समय यूटीसी +5 है। मुझे देखना चाहिए कि यह क्यों सोचता है। –

+0

इसके अतिरिक्त हम 2 लोगों को गलत समय मिल रहा है और हमारे पास 1.6.13 संस्करण है। जहां एक ऐसे व्यक्ति के रूप में 1.6.26 सही हो रहा है। –

+0

मुझे निम्नलिखित मान मिल रहे हैं। पवित्र गाय। मेरी विंडोज सेटिंग्स को नजरअंदाज कर दिया गया है। user.timezone = America/Rio_Branco user.country = यूएस java.home = सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.6.0 \ jre –

3

आप आप कोड में या लिंक किए गए libs में कहीं और भी समयक्षेत्र 'मजबूर' हो सकता है

static { 
     TimeZone.setDefault(anotherTimeZone); 
} 

यह इस तरह के व्यवहार को मुख्य रूप से भी ट्रिगर करेगा।

+0

लेकिन यह कैसे काम करता है? क्या मुझे कभी-कभी या हर कक्षा में टाइमज़ोन घोषित करना है? – Tony

1

java.util.Date सिस्टम दिनांक देता है। अपने सिस्टम समय यूटीसी को जीएमटी में बदलें।

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