ISO 8601
Sử dụng định dạng ISO 8601.
- Đó là linh hoạt, nó bao gồm giây và phần thứ hai nếu có bất kỳ, nhưng bạn cũng có thể để lại cho họ hiểu xem họ là 0.
- Đó là tiêu chuẩn, vì vậy nhiều và các công cụ nhiều định dạng và phân tích nó. Tuyệt vời cho serialization cho lưu trữ hoặc trao đổi dữ liệu.
- Nó giống như
2009-10-22T21:13:14
, tôi nên nói nó khá dễ đọc (mặc dù số T
ở giữa biểu thị phần bắt đầu của phần thời gian có thể cảm thấy bất thường lúc đầu).
- Các chuỗi loại đúng cách, như mikera yêu cầu trong another answer, miễn là những năm nằm trong khoảng bốn chữ số từ 1000 đến 9999.
- Các lớp của
java.time
, ngày Java hiện đại và thời gian API, cũng như của Joda Time phân tích cú pháp ISO 8601 làm mặc định của chúng, nghĩa là, không có bất kỳ định dạng rõ ràng nào và tạo ra cùng một định dạng từ các phương thức toString
của chúng.
Một cuộc biểu tình khiêm tốn của việc sử dụng java.time
:
LocalDateTime dateTime = LocalDateTime.of(2009, 10, 22, 21, 13, 14);
String readableString = dateTime.toString();
System.out.println(readableString);
LocalDateTime parsedBack = LocalDateTime.parse(readableString);
System.out.println(parsedBack);
này in hai dòng giống hệt nhau:
2009-10-22T21:13:14
2009-10-22T21:13:14
Sau System.out.println()
gọi ngầm gọi toString()
một lần nữa, vì vậy điều này không nên ngạc nhiên.
Nguồn
2018-01-18 17:17:03
Khi câu trả lời này đã được viết vào năm 2009 'SimpleDateFormat' là thứ chúng ta có cho mục đích này. Nó đã được chứng minh phiền hà và may mắn thay được thay thế bởi 'java.time', ngày Java hiện đại và API thời gian, và lớp' DateTimeFormatter' của nó vào năm 2014. Tôi khuyên bạn không bao giờ sử dụng 'SimpleDateFormat' nữa. –