我想将日期字符串转换为 python 日期时间格式。字符串如下:
Mon, 26 Dec 2011 20:42:08 +0200
Sat, 24 Dec 2011 16:28:59 +0200
有没有更快的方法在不使用 pytz API 的情况下将字符串转换为 python 日期时间格式?
>>> 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)))
有关日期时间占位符的完整列表,请参阅文档。
这是适用于 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)
试试这个?假设输入 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)