2011-01-17 57 views
19

Tôi cần một định dạng ngày (có thể là SimpleDateFormat) phân tích đáng tin cậy đầu ra tôi nhận được khi tôi gọi toString() trên một đối tượng Date. Đầu ra trên hệ thống của tôi (!) Đức là: "CN Dec 12 13:45:12 CET 2010", do đó, nó dường như không tôn vinh ngôn ngữ, mà dường như làm cho nó dễ dàng.cách phân tích đầu ra của Date(). ToString()

Bất kỳ ai?

Trả lời

27

Định dạng đó được chỉ định trong Date#toString().

Chuyển đổi đối tượng Date này cho một người String dạng:

dow mon dd hh:mm:ss zzz yyyy 

Vì vậy, trong SimpleDateFormat về mẫu:

EEE MMM dd HH:mm:ss zzz yyyy 

Không liên quan đến vấn đề này, tôi tự hỏi nếu nó không ở vị trí đầu tiên, bạn nên sử dụng Date#toString() thay vì SimpleDateFormat#format() cho ngày xuất. Tôi sẽ xem xét để sửa chữa nó thẳng ở đó.

+0

Vấn đề là tôi nhận dữ liệu được tạo thông qua date.toString() ... Tôi cũng đã sử dụng DateFormat. – Daniel

+7

TẤT CẢ CÁC NGƯỜI KHÁC: Xin lưu ý rằng bạn phải khởi tạo DateFormat bằng Locale.US để thực hiện tác phẩm này ở các quốc gia không phải của Hoa Kỳ. – Daniel

6

BalusC cung cấp cho bạn định dạng đúng, bạn sẽ nói - không. Phương thức toString() không được sử dụng cho bất kỳ điều gì ngoài ghi nhật ký.

Bạn có thể sử dụng SimpleDateFormat cho cả định dạng và phân tích cú pháp.

+2

Lưu ý rằng 'java.sql.Date' có kết quả' toString() 'khác. –

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