2012-03-06 47 views

Trả lời

9

Trong bạn AndroidManifest.xml

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

Trong nguồn của bạn:

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

Tôi muốn thay đổi múi giờ cục bộ cho 3 múi giờ khác nhau. 1. EST (Giờ chuẩn miền Đông). 2. CST (Giờ chuẩn miền Trung). 3. AST (Giờ chuẩn Đại Tây Dương). Từ đó tôi có thể chọn khóa cho múi giờ tương ứng ?. – Nithinjith

+0

Gọi 'TimeZone.getAvailableIDs()' để nhận danh sách các múi giờ đã biết cho hệ thống của bạn. – Synesso

+0

Quyền này chỉ được phép đối với các ứng dụng hệ thống. – 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

Nguồn đó là câu trả lời cho một câu hỏi khác và không đủ trong trường hợp này. – MarchingHome

3

đang Abhishek chỉ đơn giản định nghĩa một ví dụ Lịch với một định dạng cụ thể được sử dụng trong các ứng dụng, do đó sẽ không làm việc.

Không thể thay đổi múi giờ của điện thoại theo chương trình. Bạn có thể chuyển hướng người dùng đến các thiết lập phù hợp, tuy nhiên:

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

Nếu đây là trên một mô phỏng hoặc một thiết bị mà bạn có root trên, bạn có thể chạy

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

Chính xác những gì tôi đang tìm kiếm. Cảm ơn –

Các vấn đề liên quan