2012-03-30 95 views
47

Tôi đang cố gắng phân tích cú pháp chuỗi thành trường ngày trong ứng dụng android nhưng dường như tôi không thể làm đúng. Đây là chuỗi tôi đang cố gắng chuyển đổi thành một ngày "03/26/2012 11:49:00 AM". Chức năng tôi đang sử dụng là:Chuyển đổi chuỗi thành Ngày tháng trong java

private Date ConvertToDate(String dateString){ 
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa"); 
    Date convertedDate = new Date(); 
    try { 
     convertedDate = dateFormat.parse(dateString); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return convertedDate; 
} 

Nhưng tôi tiếp tục nhận được 3/1/112 11:49 AM như kết quả .. Mọi trợ giúp tôi thực sự đánh giá cao. nhờ

+2

Bạn đang nhìn thấy "3/1/112 11:49 SA"? Giá trị trả về là một ngày, không phải là một chuỗi, vì vậy bạn phải làm * một cái gì đó * để xem nó như một kết quả chuỗi ... –

+0

Tôi thấy Mon Mar 26 11:49:00 IST 2012 là đầu ra. –

+0

cố gắng thiết lập phân tích để khoan dung bằng cách sử dụng dateFormat.setLenient (true), và sau đó kiểm tra kết quả phân tích cú pháp của bạn – manub

Trả lời

103

Bạn đang sai trong cách bạn hiển thị dữ liệu tôi đoán, bởi vì đối với tôi:

String dateString = "03/26/2012 11:49:00 AM"; 
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa"); 
    Date convertedDate = new Date(); 
    try { 
     convertedDate = dateFormat.parse(dateString); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    System.out.println(convertedDate); 

Prints:

Mon Mar 26 11:49:00 EEST 2012 
+0

mọi người đều đúng. nó đã được chuyển đổi một cách chính xác nhưng tôi đã sử dụng Date.getYear(), getMonth() và tất cả những gì mà tôi đã sử dụng không chính xác. Cảm ơn tất cả các bạn giúp đỡ. – bflosabre91

4
String str_date="13-09-2011"; 
DateFormat formatter ; 
Date date ; 
formatter = new SimpleDateFormat("dd-MM-yyyy"); 
date = (Date)formatter.parse(str_date); 
System.out.println("Today is " +date.getTime()); 

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

17

nó đã đi OK khi tôi sử dụng thông số Locale.US trong SimpleDateFormat

String dateString = "15 May 2013 17:38:34 +0300"; 
System.out.println(dateString); 

SimpleDateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy HH:mm:ss Z", Locale.US); 
DateFormat targetFormat = new SimpleDateFormat("dd MMM yyyy HH:mm", Locale.getDefault()); 
String formattedDate = null; 
Date convertedDate = new Date(); 
try { 
    convertedDate = dateFormat.parse(dateString); 
System.out.println(dateString); 
formattedDate = targetFormat.format(convertedDate); 
} catch (ParseException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
System.out.println(convertedDate); 
2

Mã này sẽ giúp bạn tạo kết quả như FEB 17 20:49.

String myTimestamp="2014/02/17 20:49"; 

    SimpleDateFormat form = new SimpleDateFormat("yyyy/MM/dd HH:mm"); 
    Date date = null; 
    Date time = null; 
    try 
    { 
     date = form.parse(myTimestamp); 
     time = new Date(myTimestamp); 
     SimpleDateFormat postFormater = new SimpleDateFormat("MMM dd"); 
     SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
     String newDateStr = postFormater.format(date).toUpperCase(); 
     String newTimeStr = sdf.format(time); 
     System.out.println("Date : "+newDateStr); 
     System.out.println("Time : "+newTimeStr); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

Kết quả:

ngày: Feb 17

Thời gian: 20:49

0
GregorianCalendar date; 

CharSequence dateForMart = android.text.format.DateFormat.format("yyyy-MM-dd", date); 

Toast.makeText(LogmeanActivity.this,dateForMart,Toast.LENGTH_LONG).show(); 
1
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
String dateInString = "07/06/2013"; 

try { 

    Date date = formatter.parse(dateInString); 
    System.out.println(date); 
    System.out.println(formatter.format(date)); 

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

Output:

2014/08/06 16:06:54 
2014/08/06 16:06:54 
Các vấn đề liên quan