class email.headerregistry.DateHeader
RFC 5322 specifies a very specific format for dates within email headers. The DateHeader
parser recognizes that date format, as well as recognizing a number of variant forms that are sometimes found “in the wild”.
This header type provides the following additional attributes:
-
datetime
-
If the header value can be recognized as a valid date of one form or another, this attribute will contain a
datetime
instance representing that date. If the timezone of the input date is specified as-0000
(indicating it is in UTC but contains no information about the source timezone), thendatetime
will be a naivedatetime
. If a specific timezone offset is found (including +0000), thendatetime
will contain an awaredatetime
that usesdatetime.timezone
to record the timezone offset.
The decoded
value of the header is determined by formatting the datetime
according to the RFC 5322 rules; that is, it is set to:
email.utils.format_datetime(self.datetime)
When creating a DateHeader
, value may be datetime
instance. This means, for example, that the following code is valid and does what one would expect:
msg['Date'] = datetime(2011, 7, 15, 21)
Because this is a naive datetime
it will be interpreted as a UTC timestamp, and the resulting value will have a timezone of -0000
. Much more useful is to use the localtime()
function from the utils
module:
msg['Date'] = utils.localtime()
This example sets the date header to the current time and date using the current timezone offset.
Please login to continue.