3

我想将日期字符串转换为 python 日期时间格式。字符串如下:

Mon, 26 Dec 2011 20:42:08 +0200
Sat, 24 Dec 2011 16:28:59 +0200

有没有更快的方法在不使用 pytz API 的情况下将字符串转换为 python 日期时间格式?

4

3 回答 3

2
>>> import datetime
>>> s = "Mon, 26 Dec 2011 20:42:08 +0200"
>>> t = datetime.datetime.strptime(s, "%a, %d %b %Y %H:%M:%S %z")
>>> t
datetime.datetime(2011, 12, 26, 20, 42, 8, tzinfo=datetime.timezone(datetime.timedelta(0, 7200)))

有关日期时间占位符的完整列表,请参阅文档。

于 2012-11-17T05:59:11.540 回答
2

这是适用于 Python 2.5+、PyPy、Jython 的变体:

from datetime import datetime, timedelta
from email.utils import mktime_tz, parsedate_tz

s = "Mon, 26 Dec 2011 20:42:08 +0200"
t = parsedate_tz(s)
if t[9] is not None:
    utc_offset = timedelta(seconds=t[9])  # local = utc + offset
    print("utc offset: %s" % (utc_offset,))
print(repr(datetime.utcfromtimestamp(mktime_tz(t))))  # naive datetime in UTC

输出

utc offset: 2:00:00  
datetime.datetime(2011, 12, 26, 18, 42, 8)
于 2012-11-17T10:24:49.343 回答
1

试试这个?假设输入 2016-01-02 并且您想要标准化所有日期。

def NormalizaData(input):
 input = str(input)
 num = input.split('-')
 year = num[0]
 newnum = num[1]
 num = newnum.split('-')
 month = num[0]
 day = '01'
 return (year + '-' + month + '-' + day)
于 2017-01-12T04:33:01.467 回答