繁体   English   中英

Python 将日期字符串转换为 python 日期并减去

[英]Python convert date string to python date and subtract

我有一种情况需要从date_entry中找到上一个日期,其中date_entry是字符串,我设法做到了这一点:

>>> from datetime import timedelta, datetime
>>> from time import strptime, mktime
>>> date_str = '20130723'
>>> date_ = strptime(date_str, '%Y%m%d')
>>> date_
time.struct_time(tm_year=2013, tm_mon=7, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=204,tm_isdst=-1)
>>> datetime.fromtimestamp(mktime(date_))-timedelta(days=1)
datetime.datetime(2013, 7, 22, 0, 0)
>>>

但是,为此我必须导入模块timedeltadatetimestrptimemktime 我认为这真的是解决这个简单问题的矫枉过正。

有没有更优雅的方法来解决这个问题(使用 Python 2.7)?

只需使用datetime.datetime.strptime类方法:

>>> import datetime
>>> date_str = '20130723'
>>> datetime.datetime.strptime(date_str, '%Y%m%d') - datetime.timedelta(days=1)
datetime.datetime(2013, 7, 22, 0, 0)

选择的答案是旧的,适用于 python 2,返回 python 3 的波纹管错误

错误:

AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

修复 + 用 PYTHON 3 做:

from datetime import datetime,timedelta
date_str = '20130723'
datetime.strptime(date_str, '%Y%m%d') - timedelta(days=1)

此外,请在此处使用Python 3上的最新文档: https://docs.python.org/3/library/datetime.html#datetime.datetime.strptime

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM