2011-12-13 41 views
12

Tôi nhận được ngày vào chuỗi trong YYYY/MM/DD HH:MM:SS format.I muốn thay đổi nó vào mm/dd/yyyy HH:mm:ss và cũng có thể nó sẽ hiển thị AM và PM làm thế nào tôi có thể làm this.please giúp tôilàm thế nào để chuyển đổi định dạng ngày tháng trong android

Thank bạn

+0

Tôi đã tạo một phương pháp đơn giản để thực hiện việc này. Hãy tham khảo http://stackoverflow.com/a/40042733/4531507 –

Trả lời

34

Để có được AM PM và định dạng ngày 12 giờ sử dụng hh:mm:ss a như chuỗi định dạng ĐÂU hh là dành cho định dạng 12 giờ và a là dành cho định dạng AM PM.

Lưu ý: HH là dành cho 24 giờ và hh là dành cho định dạng ngày 12 giờ

SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a"); 
      String newFormat = formatter.format(testDate); 

Ví dụ

String date = "2011/11/12 16:05:06"; 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS"); 
     Date testDate = null; 
     try { 
      testDate = sdf.parse(date); 
     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
     SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a"); 
     String newFormat = formatter.format(testDate); 
     System.out.println(".....Date..."+newFormat); 
+1

câu trả lời hay, đã giúp tôi rất nhiều ..đã phạm sai lầm 'HH: mm: ss a' – MKJParekh

+0

cảm ơn, điều đó cứu mạng tôi –

+0

Không sử dụng hh cũng cung cấp cho bạn '0' cho' 12'? Tôi upvoted câu trả lời này. – Si8

1

Sử dụng android.text.format.Time cho chuyển đổi. Bạn có thể chuyển thời gian dưới dạng văn bản và nó sẽ trả lại cho bạn thời gian ở định dạng mong muốn bằng cách sử dụng timeInstance.format("");

bạn cần cung cấp trình định dạng.

Tham khảo sau đây: Thời gian: http://developer.android.com/reference/android/text/format/Time.html Formatter: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html

bạn có thể sử dụng bất kỳ sự kết hợp của chuỗi định dạng để làm việc với nó :)

1

chỉ cần sử dụng lớp Time. Hãy thử một cái gì đó tương tự như thế này.

Time time = new Time(); 
time.set(Long.valueOf(yourTimeString)); 

Nếu bạn thực sự cần đối tượng Ngày chỉ cần thử điều này.

Date date = new Date(Long.parse(yourTimeString)); 
0

bạn có thể sử dụng SimpleDateFormat hoặc DateFormat cho đây này là ví dụ

SimpleDateFormat gsdf = new SimpleDateFormat("YYYY/MM/DD HH:mm:ss"); 
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a"); 
try{ 
    Date d = gsdf.parse("2011/12/13 16:17:00"); 
    System.out.println("new date format " + sdf.format(d)); 
}catch(Exception){ 
    // handle exception if parse time or another by cause 
} 
10

Bạn có thể sử dụng SimpleDateFormat cho cùng loại của bất kỳ hoạt động ngày.

SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
SimpleDateFormat DesiredFormat = new SimpleDateFormat("MM/dd/yyyy HH:MM:SS a"); 
                  // 'a' for AM/PM 

Date date = sourceFormat.parse("2012/12/31 03:20:20"); 
String formattedDate = DesiredFormat.format(date.getTime()); 
// Now formattedDate have current date/time 
Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show(); 
0
public static String getFormatedDate(String strDate, String sourceFormate, 
     String destinyFormate) { 
    SimpleDateFormat df; 
    df = new SimpleDateFormat(sourceFormate); 
    Date date = null; 
    try { 
     date = df.parse(strDate); 

    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

    df = new SimpleDateFormat(destinyFormate); 
    return df.format(date); 

} 

và sử dụng như

getFormatedDate(strDate, 
      "yyyy-MM-dd HH:mm:ss", "mm/dd/yyyy") 
Các vấn đề liên quan