2011-08-08 18 views
13

Tôi đã làm việc về vấn đề định dạng ngày do người dùng chọn trong Điện thoại Android. Tôi đã trải qua hầu hết các câu hỏi và câu trả lời trên stackoverlow và havent có câu trả lời hoàn hảo. Ví dụ: - tôi đã chọn DateFormat trong điện thoại là "Sat, 31 tháng 12 năm 2011" Nhưng khi tôi sử dụng như câu hỏi dựa trả lời trên stackoverflow: -Cách tải định dạng ngày do người dùng chọn trong Android?

DateFormat df = android.text.format.DateFormat.getDateFormat(context.getApplicationContext()); 
tv.setText(df.format(date)); 

Trên mã trả về cho tôi 2011/06/08 (mm/dd/yyyy). Nhưng hãy xem định dạng ngày tôi đã chọn trên điện thoại. Làm thế nào tôi có thể có được định dạng chính xác?

Trả lời

27

Trong một ứng dụng tôi đang phát triển tôi sử dụng những điều sau đây, mà tôi tin rằng sẽ làm những gì bạn yêu cầu

final String format = Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT); 
if (TextUtils.isEmpty(format)) { 
    dateFormat = android.text.format.DateFormat.getMediumDateFormat(getApplicationContext()); 
} else { 
    dateFormat = new SimpleDateFormat(format); 
} 
+0

thư viện là gì Cài đặt này? – KJEjava48

2

DateFormat.getDateFormat hoạt động như mong đợi. Nó trả về một trong ba định dạng có thể:

  1. MM/DD/YYYY
  2. DD/MM/YYYY
  3. YYYY/MM/DD

Tôi không chắc chắn làm thế nào bạn thiết lập "Sat, 31 tháng 12 năm 2011" định dạng của bạn , nhưng theo như tôi biết cổ phiếu Android cho phép chỉ đặt một trong ba định dạng được đề cập (Cài đặt -> Ngày và Giờ -> Chọn Định dạng ngày).

enter image description here

1

Hãy thử điều này

Date inDate = inFormat.parse(in); 
DateFormat outFormat = android.text.format.DateFormat.getDateFormat(context); 
out=outFormat.format(inDate); 
Các vấn đề liên quan