2012-03-06 31 views
8

में टाइमज़ोन बदलें मैं समय-समय पर एंड्रॉइड में टाइमज़ोन को "अमेरिका/लॉस_एंजेलस" के रूप में सेट करना चाहता हूं। मैं यह कैसे कर सकता हूँ। आईडी का उपयोग करके यह कैसे संभव हो सकता है।एंड्रॉइड प्रोग्रामेटिक रूप से

उत्तर

9

चला सकते हैं अपने AndroidManifest.xml

में: आप उपयोगकर्ता उचित सेटिंग्स के लिए, पुन: निर्देशित कर सकता है लेकिन
<uses-permission android:name="android.permission.SET_TIME_ZONE"/> 

अपने स्रोत में:

AlarmManager am = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE); 
am.setTimeZone("America/Los_Angeles"); 
+0

मैं 3 अलग-अलग समय क्षेत्रों के लिए स्थानीय क्षेत्र को स्थानीय रूप से बदलना चाहता हूं। 1. ईएसटी (पूर्वी मानक समय)। 2. सीएसटी (केंद्रीय मानक समय)। 3. एएसटी (अटलांटिक मानक समय)। जहां से मैं संबंधित समय क्षेत्र के लिए कुंजी का चयन कर सकता हूं? – Nithinjith

+0

अपने सिस्टम के लिए ज्ञात टाइमज़ोन की सूची प्राप्त करने के लिए 'TimeZone.getAvailableIDs()' पर कॉल करें। – Synesso

+0

यह अनुमति केवल सिस्टम ऐप्स के लिए अनुमति है। – HHLV

3
Calendar calendar = Calendar.getInstance();  
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss z"); 
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); 
System.out.println(sdf.format(calendar.getTime())); 

Source

+2

वह स्रोत एक अलग प्रश्न का उत्तर है और इस मामले में पर्याप्त नहीं है। – MarchingHome

3

अभिषेक के कोड केवल एक विशिष्ट प्रारूप अनुप्रयोग में प्रयोग की जाने वाली के साथ एक कैलेंडर उदाहरण परिभाषित करता है, तो यह है कि काम नहीं करेगा।

प्रोग्राम के समय क्षेत्र को प्रोग्रामेटिक रूप से बदलना संभव नहीं है। यदि यह एक सिम्युलेटर या एक डिवाइस का उपयोग कर जड़ है पर है,

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS)); 
2

आप

adb shell "su -c 'setprop persist.sys.timezone America/Los_Angeles; stop; sleep 5; start'" 
+0

बिल्कुल वही जो मैं खोज रहा था। धन्यवाद –

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