ISO 8601 và RFC 3339 dường như là hai định dạng phổ biến trên web. Tôi có nên sử dụng cái này qua cái kia không? Chỉ là một phần mở rộng? Tôi có thực sự cần phải quan tâm đến điều đó không?Sự khác nhau giữa định dạng ngày tháng ISO 8601 và RFC 3339 là gì?
Trả lời
là một chỉ là một phần mở rộng?
Khá nhiều, vâng - RFC 3339 được liệt kê như một hồ sơ cá nhân của tiêu chuẩn ISO 8601. Đáng chú ý nhất RFC 3339 đòi hỏi một hoàn chỉnh đại diện của ngày và thời gian (chỉ cần vài giây phân đoạn là không bắt buộc). RFC cũng có một số khác biệt nhỏ, tinh tế. Ví dụ: biểu diễn cắt ngắn của năm chỉ có hai chữ số không được phép - RFC 3339 yêu cầu 4 chữ số năm và RFC chỉ cho phép ký tự dấu chấm được sử dụng làm dấu thập phân cho số thập phân. RFC cũng cho phép "T" được thay thế bằng dấu cách (hoặc ký tự khác), trong khi tiêu chuẩn chỉ cho phép nó được bỏ qua (và chỉ khi có thỏa thuận giữa tất cả các bên sử dụng biểu diễn).
tôi sẽ không lo lắng quá nhiều về sự khác biệt giữa hai, nhưng trên off-cơ hội trường hợp sử dụng của bạn chạy vào họ, nó sẽ có giá trị của bạn trong khi tham gia một cái nhìn tại địa chỉ:
Đó là cách khác, ISO cho phép bỏ qua 'T' nhưng RFC 3339 ủy nhiệm nó http://tools.ietf.org/html/rfc3339#page -12 –
ISO 8601 cũng bao gồm một số phần mở rộng không đơn giản như khoảng thời gian và các khoảng thời gian lặp lại định kỳ, trong khi RFC 3339 chỉ đề cập đến dấu thời gian. Thông tin sau (được lấy từ đặc tả WMS) là ISO hợp pháp nhưng không phải RFC: 'Dữ liệu hàng ngày được lấy vào buổi trưa từ ngày 15 tháng 4 năm 1995 (khoảng thời gian định kỳ): 1995-04-22T12: 00Z/2000-06-21T12: 00Z/P1D' – geira
Xin lỗi Java Guy, nhưng điều đó không hoàn toàn chính xác. Phụ lục mà bạn tham khảo chỉ mang tính thông tin và hạn chế là để giữ cho ngữ pháp đơn giản hơn. Ghi chú ở cuối phần 5.6 nêu rõ rằng một khoảng trống có thể được sử dụng vì mục đích dễ đọc, đề cập đến khả năng đọc trước đó là chủ đề của phần 5.2. để báo giá: "Các ứng dụng sử dụng cú pháp này có thể chọn, vì mục đích dễ đọc, để chỉ định toàn ngày và toàn thời gian được phân tách bằng ký tự khoảng trắng." –
Bạn không cần phải quan tâm nhiều đến thế. RFC 3339, theo chính nó, là một tập hợp các tiêu chuẩn bắt nguồn từ ISO 8601. Có một vài sự khác biệt mặc dù, và tất cả chúng được phác thảo trong RFC 3339. Tôi có thể xem hết tất cả ở đây, nhưng bạn có thể làm tốt hơn chỉ đọc tài liệu cho chính mình trong trường hợp bạn đang lo lắng:
RFC 3339 chủ yếu là một hồ sơ cá nhân của tiêu chuẩn ISO 8601, nhưng thực sự là không phù hợp với nó trong mượn "-00: 00" đặc điểm kỹ thuật múi giờ từ RFC 2822. Đây được mô tả trong bài viết Wikipedia.
Tôi đã thay đổi liên kết tới RFC từ http://www.ietf.org/rfc/rfc3339.txt thành phiên bản HTML tại http://tools.ietf.org/html/rfc3339. Khi liên kết tới RFC, bạn nên * luôn * liên kết đến các phiên bản HTML tại http://tools.ietf.org/html. Không chỉ dễ dàng điều hướng hơn nhờ các liên kết phần, nhưng quan trọng là chúng liệt kê ở đầu bất kỳ RFC nào đã cập nhật hoặc lỗi thời RFC mà bạn đang đọc. Mọi người vô tình viện dẫn RFC lỗi thời mọi lúc trên Stack Overflow, và tôi sẽ tiếp tục lặp lại lời khuyên này cho đến khi vấn đề đó biến mất. (Để tránh nghi ngờ, * điều này * RFC không lỗi thời.) –