Tôi đang viết một ứng dụng email dựa trên web bằng Python và một câu hỏi đã phát sinh về múi giờ của tiêu đề "Ngày" của một email sẽ được thể hiện như khi gửi.Có nên gửi tiêu đề "Ngày" qua email là giờ địa phương hoặc UTC của người gửi không?
RFC 2822 bang trong phần 3.3 rằng:
Ngày và thời gian của ngày NÊN hiện giờ địa phương.
Điều này dường như không rõ ràng đối với tôi; câu hỏi là giờ địa phương của ai? Máy chủ email hoặc người gửi? Đương nhiên tôi sẽ giả định người gửi (có thể ở bất kỳ múi giờ nào và có thể thay đổi tùy chọn tài khoản của họ). Sự nhầm lẫn hơn nữa nảy sinh khi tôi xem chức năng email.utils.formatdate của Python có vẻ như chỉ cung cấp hai lựa chọn thay thế: UTC hoặc giờ địa phương (của máy chủ). Đối với tôi, dường như không có bất kỳ tùy chọn nào để chỉ định múi giờ thay thế, hoặc tôi có thiếu gì đó không?
Chuyển thời gian định dạng bằng cách sử dụng time.mktime(senders_tz_aware_now_datetime.timetuple())
kết quả theo chuỗi ngày UTC, điều này cảm thấy sai về những gì RFC đã nói ở trên.
Vậy múi giờ nào sẽ là "Ngày" và có tồn tại bất kỳ hàm chuẩn nào để tạo chuỗi ngày thích hợp không?
Điều đó sẽ không làm điều đó, tôi đang chuyển đổi đối tượng ngày giờ nhận biết múi giờ bằng cách sử dụng phương thức thời gian biểu có nghĩa là is_dst đã được đặt. Ngoài ra nó không trả lời câu hỏi của tôi về những gì đại diện thời gian chính xác là ngày. – kuhnza
Thay đổi suy nghĩ của tôi, đi một cách dễ dàng và bạn sẽ có thời gian để uống một ly bia vào buổi tối. – sorin
Haha Tôi thích phong cách của bạn. Tuy nhiên, tôi muốn nhận được một số ý tưởng về cách xử lý này thường được xử lý bởi vì tôi cho rằng nó có ý nghĩa đối với một loạt các ứng dụng email mà tôi chưa bao giờ nghe nói về việc có thời gian hoặc tài nguyên để kiểm tra. – kuhnza