2010-01-26 37 views
55

Có tương đương với định dạng kiểu ngày tháng php() trong Java không? Tôi có nghĩa là, trong php tôi có thể backslash-thoát nhân vật để có chúng được điều trị theo nghĩa đen. I E. yyyy \ y \ e \ a \ r sẽ trở thành 2010 năm. Tôi không tìm thấy bất cứ điều gì tương tự trong Java, tất cả các ví dụ chỉ giải quyết với các định dạng ngày được xây dựng sẵn.Định dạng ngày Java - bao gồm các ký tự bổ sung

Cụ thể, tôi xử lý JCalendar bộ chọn ngày và thuộc tính dateFormatString của chúng tôi.

Tôi cần nó bởi vì trong ngôn ngữ của tôi, nó được yêu cầu để viết tất cả các loại công cụ bổ sung trong định dạng ngày, như d. (cho ngày) sau phần ngày, m. (trong nhiều năm) sau nhiều năm và vân vân. Trong trường hợp xấu nhất tôi có thể sử dụng chuỗi thay thế hoặc regexp nhưng có thể có một cách đơn giản hơn? Cảm ơn trước!

Trả lời

107

Chắc chắn, với SimpleDateFormat bạn có thể bao gồm các chuỗi chữ:

Trong chuỗi mẫu ngày và giờ, các chữ cái không được trích 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 bằng cách sử dụng dấu nháy đơn (') để tránh diễn giải. "''" đại diện cho một dấu nháy đơ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.

"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time 
+0

Siêu, đó chính xác là những gì tôi cần. Đáng ngạc nhiên là tôi đã không tìm thấy điều đơn giản như vậy trong bất kỳ ví dụ rất nhiều tôi duyệt web :) Cảm ơn rất nhiều! – Sejanus

+1

Làm cách nào để thoát khỏi ký tự trích dẫn? Tôi đang cố gắng làm điều gì đó với định dạng mm '. Cho biết ví dụ 46 phút như 46 '. – Sotti

+3

@Sotti: '46'''. Người đầu tiên thoát khỏi thứ hai. – Thilo

7

Bạn có thể sử dụng String.format như tài liệu trong java.util.Formatter:

Calendar c = ...; 
String s = String.format("%tY year", c); 
// -> s == "2010 year" or whatever the year actually is 
-1

java.text.SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
String formattedDate = formatter.format(date); 

Bạn sẽ nhận được thông tin thêm ở đây link text

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