2012-02-28 15 views
45

मैं अपने एंड्रॉइड एप्लिकेशन में वर्तमान समय क्षेत्र कैसे प्राप्त कर सकता हूं? मैंने इसएंड्रॉइड एप्लिकेशन में वर्तमान समय क्षेत्र प्राप्त करना

Calendar cal = Calendar.getInstance(userConfig.locale); 
TimeZone tz = cal.getTimeZone(); 

का उपयोग करने की कोशिश की लेकिन मुझे इससे टाइमज़ोन नहीं मिल रहा है। मैं टाइमज़ोन कैसे प्रदर्शित कर सकता हूं?

+1

यदि आप 'जोडाटाइम' का उपयोग करते हैं, तो आप 'DateTime.now (DateTimeZone.getDefault()) का उपयोग कर सकते हैं;'। यदि आप 'जोडाटाइम' का उपयोग नहीं कर रहे हैं, तो आपको इसे देखना चाहिए। टाइमज़ोन प्राप्त करने के लिए कैलेंडर को तुरंत चालू करने के बजाय TimeZone.getDefault() का उपयोग करने के लिए –

उत्तर

88

उपयोग इस

Calendar cal = Calendar.getInstance(); 
TimeZone tz = cal.getTimeZone(); 
Log.d("Time zone","="+tz.getDisplayName()); 

या आप भी java.util.TimeZone वर्ग

TimeZone.getDefault().getDisplayName() 
+22

+1। – spaaarky21

+0

'TimeZone.getDefault()। GetDisplayName() 'अच्छी तरह से काम करता है। –

22
String timezoneID = TimeZone.getDefault().getID(); 
System.out.println(timezoneID); 

मेरी कंसोल में, यह प्रिंट Asia/Calcutta

और किसी भी दिनांक स्वरूप, मैं इसे सेट की तरह ....

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy"); 
sdf2.setTimeZone(TimeZone.getTimeZone(timezoneID)); 
-5

वर्तमान समय प्रदर्शित करने के लिए, आप नीचे दिए गए कोड स्निपेट चलाना चाहिए यूआई थ्रेड पर। यह मेरे लिए काम किया:

Timer timer = new Timer();   
timer.schedule(new TimerTask() {   
    public void run() {  
     runOnUiThread(new Runnable(){  
      public void run() {  
       dateTxt.setText(new Date().toString());  
      }  
     });  
    }  
}, 0, 1000); 
9

उपयोग कर सकते हैं मैं ऑफसेट की जरूरत है कि न केवल दिन के प्रकाश बचत समय शामिल है, लेकिन के रूप में एक संख्यात्मक यहां वह कोड है जिसका उपयोग मैंने किसी उदाहरण की तलाश में किया था।

मुझे "11" की प्रतिक्रिया मिलती है जो मैं एनएसडब्ल्यू, ऑस्ट्रेलिया में गर्मियों में अपेक्षा करता हूं। मुझे इसे एक स्ट्रिंग के रूप में भी जरूरी था ताकि मैं इसे सर्वर पर पोस्ट कर सकूं ताकि आपको अंतिम पंक्ति की आवश्यकता न हो।

TimeZone tz = TimeZone.getDefault(); 
Date now = new Date(); 
int offsetFromUtc = tz.getOffset(now.getTime())/3600000; 
String m2tTimeZoneIs = Integer.toString(offsetFromUtc); 
+0

यह वही है जो मैं ढूंढ रहा हूं। इस उत्तर के लिए +1 – user2759156

+3

यह टाइमज़ोन के लिए काम नहीं करेगा जो न्यूफाउंडलैंड जैसे आधे घंटे के अंतर के तहत आते हैं जो जीएमटी -2: 30 है, आपको बस 2 वापस मिलेगा – pkramaric

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