2010-03-10 51 views
65

Có thể bao gồm ký tự chữ cái trong chuỗi mẫu SimpleDateFormat không?Sử dụng ký tự chữ cái trong chuỗi mẫu SimpleDateFormat

tôi đang cố gắng để tạo ra một chuỗi định dạng mà chữ 'T' được bao gồm trước thời điểm ví dụ:

2003-11-15 T 09: 30: 47-05: 00.

Tôi hiện đang sử dụng yyyy-MM-ddhh:mm:ssZ làm chuỗi mẫu.

Nếu tôi đổi thành yyyy-MM-ddThh:mm:ssZ, nó sẽ ném một ngoại lệ là 'A' thành 'Z' và 'a' thành 'z' được đặt trước.

Có giải pháp nào không liên quan đến việc sử dụng hai DateFormats không?

Trả lời

117

Quanh T với dấu nháy đơn nên làm việc:

yyyy-MM-dd'T'hh:mm:ssZ 

Trích dẫn từ the documentation (tôi nhấn mạnh):

ngày và thời gian định dạng được quy định theo ngày và thời gian chuỗi mẫu. Trong các chuỗi mẫu ngày và giờ, các chữ cái không được trích dẫn từ 'A' đến 'Z' và từ 'a' đến 'z' được hiểu là mẫu chữ đại diện cho các thành phần của chuỗi ngày hoặc giờ. Văn bản có thể được trích dẫn sử dụng dấu nháy đơn (') để tránh diễn giải."''" đại diện cho một trích dẫn. Tất cả các ký tự khác không được diễn giải; chúng chỉ được sao chép vào chuỗi đầu ra trong khi định dạng hoặc khớp với chuỗi đầu vào trong khi phân tích cú pháp.

trường hợp sử dụng cụ thể của bạn thậm chí còn bao gồm như là một ví dụ:

Date and Time Pattern   Result 
------------------------------------------------------------- 
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"  2001-07-04T12:08:56.235-0700 
+1

Như ghi nhận ở http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat. html –

+0

@Joachim: Có, sắp sửa thêm :) – Joey

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