2011-09-02 52 views
9

Tôi gặp sự cố khi sắp xếp ngày vì định dạng của những ngày này.Android: định dạng ngày trong chuỗi

tôi có được ngày:

final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR); 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 

Và tôi xây dựng một chuỗi với những giá trị này.

dateRappDB = (new StringBuilder() 
    .append(mYear).append(".") 
    .append(mMonth + 1).append(".") 
    .append(mDay).append(" ")).toString(); 

Vấn đề là nếu tháng là ví dụ tháng 2, giá trị tháng là 2. Vì vậy, ngày tháng như tháng 10 (10) đến trước trong danh sách của tôi.

Điều tôi cần là tháng và ngày được tạo thành như MM và dd. Nhưng tôi không biết làm thế nào để làm điều đó trong trường hợp của tôi.

EDIT:

tôi giải quyết vấn đề bằng cách sử dụng một DateFormat như đã nói ở trên.

tôi thay thế này:

dateRappDB = (new StringBuilder() 
    .append(mYear).append(".") 
    .append(mMonth + 1).append(".") 
    .append(mDay).append(" ")).toString(); 

Bằng cách này:

Date date = new Date(mYear - 1900, mMonth, mDay); 
dateFacDB = DateFormat.format("yyyy.MM.dd", date).toString(); 

Và nó hoạt động. Nhờ tất cả các bạn đã giúp đỡ của bạn :)

+2

hãy thử điều này: http: // stackoverflow.com/câu hỏi/7165901/android-ngày-và thời gian định dạng http://stackoverflow.com/questions/6705031/how-to-format-a-date http: // stackoverflow. com/questions/6520553/date-and-time-format –

Trả lời

3

Bạn cần sắp xếp ngày, không phải chuỗi. Ngoài ra, bạn có nghe nói về DateFormat không? Nó làm cho tất cả những gì gắn thêm cho bạn.

+0

Tôi thứ hai giải pháp này, trừ khi vì lý do nào đó mà bạn thực sự cần phải làm việc với những chuỗi đó ... nhưng ernazm chạm vào đầu móng: sử dụng các lớp Android: D – Kheldar

0

Nếu tôi hiểu vấn đề của bạn, bạn tạo danh sách ngày và vì chúng là chuỗi, chúng được sắp xếp theo thứ tự từ điển, có nghĩa là bạn có được tháng mười trước tháng hai (10 trước 2).

Nếu tôi là bạn, tôi sẽ lưu trữ kết quả của mình trong vùng chứa nơi tôi kiểm soát điểm chèn (như danh sách mảng) hoặc nơi tôi có thể kiểm soát thuật toán sắp xếp.

1

đây là ví dụ cho định dạng ngày

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
Date date = new Date(); 

System.out.println("format 1 " + sdf.format(date)); 

sdf.applyPattern("E MMM dd yyyy"); 
System.out.println("format 2 " + sdf.format(date)); 
13

đây là một cách đơn giản để chuyển đổi ngày để String:

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");

String strDt = simpleDate.format(dt);

7
Calendar calendar = Calendar.getInstance(); 
Date now = calendar.getTime(); 
String timestamp = simpleDateFormat.format(now); 

Đây có thể đến ở tiện dụng

SimpleDateFormat simpleDateFormat = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); 

định dạng này tương đương với -> "2016-01-01T09: 30: 00.000000 + 01: 00"

SimpleDateFormat simpleDateFormat = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ"); 

định dạng này tương đương với -> "2016-06-01T09 : 30: 00 + 01: 00 "

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