2013-06-26 29 views
9

Làm cách nào để chuyển đổi 2013-06-24 thành ngày 24 tháng 6 năm 2013? Tôi đang sử dụng mã dưới đây.Chuyển đổi yyyy-mm-dd thành dd mm yyyy

date1="2013-06-24"; 
SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy"); 

try{ 
date2 = d.parse(date1); 
}catch (ParseException e1) { 
// TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

Nhưng tôi nhận được lỗi này "java.text.ParseException: Unparseable date: "2013/06/24"(tại offset 4)"

Trả lời

32

Bạn cần hai DateFormat trường hợp: Một phân tích bản gốc String, và một để ra một trong những bạn muốn.

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); 
DateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy"); 
String inputDateStr="2013-06-24"; 
Date date = inputFormat.parse(inputDateStr); 
String outputDateStr = outputFormat.format(date); 
+0

Cảm ơn bạn rất nhiều, hoạt động của nó ngay bây giờ. – user1740281

+0

Cảm ơn rất nhiều –

1

Thay đổi

SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy"); 

với

SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd"); 

bạn phải tuân theo mẫu date1. Sau đó, bạn có thể định dạng ngày phân tích của bạn với

new SimpleDateFormat("dd MMM yyyy"); 
+0

tôi đã thay đổi nó, nhưng tôi nhận được câu trả lời này "Mon 24 Tháng sáu 00:00:00 IST 2013" – user1740281

+0

Cảm ơn bạn đã trả lời. – user1740281

2

Xem vấn đề đầu tiên là bạn đang sử dụng các dấu phân tách khác nhau cho Chuỗi và ngày. Vì vậy, bạn hoặc là "2013-06-24" đến "2013 06 24" trong Chuỗi hoặc làm SimpleDateFormat mới ("dd MMM yyyy") thành SimpleDateFormat mới ("dd-MMM-yyyy").

Và vấn đề thứ hai là bạn không thể trực tiếp thay đổi định dạng như thế này, trong chuỗi bạn có định dạng ngày tháng, vì vậy trước tiên hãy tạo đối tượng Ngày có cùng định dạng thay đổi thành định dạng mong muốn như sau:

date1="2013-06-24"; 

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 

Date dt = format.parse(date1); 

SimpleDateFormat your_format = new SimpleDateFormat("dd-MMM-yyyy"); 

date2 = your_format.format(dt); 
1
public String getStringFormatted(String datestring) { 
    String format = "dd MM yyyy"; 
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault()); 
    return sdf.format(new Date(datestring.replaceAll("-", "/"))); 
} 
Các vấn đề liên quan