2013-03-26 29 views
5

Tôi đang phát triển một ứng dụng mùa xuân và trong một bộ điều khiển của tôi, tôi có các dòng sau để phân tích từ chuỗi này sang ngày khác và định dạng ngày được phân tích thành định dạng bắt buộc. Nhưng một lần nữa tôi cần phải phân tích cú pháp trở lại chuỗi định dạng vào ngày mà không sử dụng bất kỳ SimpleDateFormat, do đó, nó có thể làm như vậy?Phân tích chuỗi thành Ngày mà không cần sử dụng SimpleDateFormat?

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); 
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd"); 

Date pick=dateFormat.parse(request.getParameter("pickDate")); 
String pick_date=dateFormat2.format(pick); 
+0

là gì vấn đề với việc sử dụng SimpleDateFormat? –

+0

Tại sao bạn không thể sử dụng 'SimpleDateFormat'? –

+0

Bạn nên tránh sử dụng SimpleDataFormat, vì nó không an toàn cho thread. – OQJF

Trả lời

5

Edit:

tôi tìm thấy trong wikipedia rằng Trung Quốc có locale yyyy-MM- đ. kiểm tra này tham khảo date format by country bộ locale sang Trung Quốc bạn sẽ nhận được định dạng ngày cần

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

String d1="12-27-2010"; 
    Stirng[] splitdata=d1.split("-"); 

    int month=Integer.parseInt(splitdata[0]); 
int day=Integer.parseInt(splitdata[1]); 
int year=Integer.parseInt(splitdata[2]); 

Calender cal=Calender.getInstance(Locale.CHINA); 
cal.set(year,month,day); 
Date d=cal.getTime(); 

này nên làm việc


Nếu bạn biết định dạng dữ liệu của bạn, bạn có thể làm việc đó đi. bằng cách sử dụng các hoạt động chuỗi đơn giản

Ex: nếu định dạng dữ liệu của bạn là

MM-dd-yyyy

sau đó bạn có thể chuyển đổi sang yyyy-MM-dd như thế này

String d1="12-27-2010"; 
Stirng[] splitdata=d1.split("-"); 

String s2= splitdate[2]+"-"+splitdate[0]+"-"+splitdate[1]; 
+0

Nhưng làm thế nào bạn sẽ phân tích nó trở lại ngày ?. 's2' trong ví dụ của bạn chỉ là chuỗi không phải là đối tượng Date. –

+0

@WannabeGeek Xin lỗi vì trả lời trễ và trả lời sai. Tôi sẽ liên hệ lại với bạn trong một phút tối thiểu – Pragnani

+0

Tôi đánh giá cao nỗ lực của bạn, cảm ơn câu trả lời. Tôi sẽ cố gắng trả lời của bạn và lấy lại cho bạn. –

-1

Có thể; chỉ cần viết mã để thực hiện phân tích cú pháp. không nên có khó khăn ...

+2

làm thế nào để làm điều đó mà không cần sử dụng SimpleDateFormat? –

+1

giống như cách bạn lập trình bất kỳ nội dung nào khác. Nhặt sợi dây, bẻ nó lên, 'đọc' chuỗi, tạo ngày tháng. Ý tôi là nếu bạn KHÔNG sử dụng các thư viện sẵn có của ngôn ngữ, bạn phải tự mình thực hiện nó. Ai đã viết SimpleDateFormat đã viết mã phân tích cú pháp. Bạn có thể viết một cái gì đó tương tự. Và tìm kiếm trên web cũng sẽ mang lại cho bạn mã mẫu. Nhưng hầu hết thời gian là một bài tập vô ích .... rất khó để làm đúng. Chính xác thì vấn đề với SimpleDateFormat là gì? – Amit

0

Bạn có thể sử dụng Concatenation Operator (+) cho rằng

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