2012-03-18 9 views

cevap

1

Saat Diliminin Ayarlanması için Programlı olarak Tarih Sınıfını kullanmanız gerekir. Referans Belgelerine bakın here.

SimpleDateFormat Sınıfının setTimeZone() yöntemini kullanmanız gerekir. Takip

ayarları Saat Dilimi için örnek kod olan objektif, daha sonra sistemin varsayılan saat dilimini değiştirmek AlarmManager ait setTimeZone() kullanmak ise Amerika'ya

için
// First Create Object of Calendar Class 
Calendar calendar = Calendar.getInstance();   
// Now Set the Date using DateFormat Class 
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss z"); 
// Finally Set the time zone using SimpleDateFormat Class's setTimeZone() Method 
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); 
+0

Fikriniz, uygulamanın SET_TIME_ZONE iznine sahip olmaması durumunda kod çalışır mı? – Jake

+1

@Jake: "Çalışmalı" olmalı. Tek yaptığı, bir nesneniz için 'TimeZone' ayarlanmasıdır. Bu, int = = 43 'demek, OS'nin umurunda değil. Genel ayar, izinler için ihtiyacınız olan şeydir, diğer cevaba bakın. – maaartinus

+1

Bu yanıt, sistemde değil, bir SimpleDateFormat örneğinde saat diliminin nasıl ayarlanacağını gösterir. Dheeraj'ın cevabı. – spaaarky21

14

göre.

+0

Teşekkürler! bu çalışıyor. – herbertD

3

Birden şekillerde TimeZone ayarlayabilirsiniz:

  1. Sadece geçerli işlem için TimeZone değişecek olan TimeZone.setDefault() kullanabilirsiniz. Ancak, dokümanlarda belirtildiği gibi, bu, tüm uygulama yaşam döngüsü için sürecek garantili değildir.

  2. Tüm aygıtın TimeZone'unu değiştirmek için setTimeZone()AlarmManager'u kullanabilirsiniz. Ancak bunun için "SET_TIME_ZONE" -misyonuna ihtiyacınız var.

Eğer 1. tehlikeli olduğunu düşünüyorum ve 2. en iyi yaklaşım için izniniz yoksa Calendar her Tarihi almak ve setTimeZone() aracılığıyla Takvim-örneğinde TimeZone ayarlamaktır.

+0

İlk çözümün% 100 çalışmak için garanti edilmemesi utanç verici. Hangi durumlarda? TimeZone.setDefault() 'geçersiz kılar veya üzerine yazılır? Dokümantasyon sadece "Bu değer herhangi bir zamanda silinebilir veya üzerine yazılabilir" ifadesini kullanır, ancak bu durumun ne zaman ve ne zaman gerçekleşeceğine dair dokümantasyon daha ayrıntılı olarak açıklığa kavuşturulmaz. –

+0

@StefanArn Üzgünüz, herhangi bir bilgi yok. Ancak cihaz, tarih ve saat dilimini ağ veya benzeri kaynaklarla (yani GPS) ayarlayacak şekilde yapılandırılmışsa, sistem tarafından değiştirilebileceğinden şüpheleniyorum. – AlexS

İlgili konular