2012-03-06 23 views

Respuesta

9

En su AndroidManifest.xml

<uses-permission android:name="android.permission.SET_TIME_ZONE"/> 

En su fuente:

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

Quiero cambiar la zona horaria localmente para 3 zonas horarias diferentes. 1. EST (hora estándar del este). 2. CST (Hora estándar central). 3. AST (Hora estándar del Atlántico). ¿De dónde puedo seleccionar la clave para las zonas horarias correspondientes ?. – Nithinjith

+0

Llamar a 'TimeZone.getAvailableIDs()' para obtener la lista de zonas horarias conocidas para su sistema. – Synesso

+0

Este permiso solo está permitido para las aplicaciones del sistema. – 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

Esa fuente es la respuesta a una pregunta diferente y no es suficiente en este caso. – MarchingHome

3

código de Abhishek simplemente define una instancia de calendario con un formato específico que se utilizará en la aplicación, por lo que no va a funcionar.

No es posible cambiar la zona horaria del teléfono mediante programación. puede redirigir al usuario a la configuración apropiada, sin embargo:

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

Si esto es en un simulador o un dispositivo que tiene raíz en, usted podría funcionar

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

Exactamente lo que estaba buscando. Gracias –

Cuestiones relacionadas