<p>我正在用Python编写一个基于web的电子邮件客户端,出现了一个问题,电子邮件的“日期”标题应该在发送时表示在哪个时区。</p>
<p><a href="http://www.ietf.org/rfc/rfc2822.txt" rel="noreferrer">RFC 2822</a>在第3.3节中声明:</p>
<blockquote>
<p>The date and time-of-day SHOULD express local time.</p>
</blockquote>
<p>这在我看来似乎模棱两可;问题是谁的当地时间?电子邮件服务器还是发件人?当然,我会假设发件人(他可能在任何时区,并且可以在他们的帐户首选项中更改)。当我查看Python的<a href="http://docs.python.org/library/email.util.html?highlight=email.utils#email.utils.formatdate" rel="noreferrer">email.utils.formatdate</a>函数时,出现了进一步的混乱,该函数似乎只提供了两种选择:UTC或本地时间(服务器的)。对我来说,似乎没有任何指定备用时区的选项,还是我遗漏了什么?</p>
<p>使用<code>time.mktime(senders_tz_aware_now_datetime.timetuple())</code>将timeval传递给formatdate会产生一个UTC日期字符串,考虑到RFC上面所说的,这感觉是错误的。</p>
<p>那么“Date”应该是哪个时区,是否存在创建适当日期字符串的标准函数?</p>