我有一个 Python2.7 脚本,其中的变量date= "21/05/2019"
可以正常工作。我需要date
变量是datetime.now - 60 days
.
但是输出必须像 time.struct_time(tm_year=2019, tm_mon=5, tm_mday=28, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=148, tm_isdst=-1)
datetime.datetime.now()
与strptime
将无法正常工作。
import datetime, time
from datetime import timedelta
N = 60
#pre_create_date = datetime.datetime.today() - datetime.timedelta(days=N)
pre_create_date = "28/04/2019"
# Sort out date format
pre_create_date = time.strptime(pre_create_date, "%d/%m/%Y")
print pre_create_date
我希望能够使用datetime.datetime.today() - datetime.timedelta(days=N)
但输出是日期时间对象。
编辑:
看来我还没有很好地解释自己。对于那个很抱歉。
脚本是:
import datetime, time
from datetime import timedelta
N = 60
#pre_create_date = datetime.datetime.today() - datetime.timedelta(days=N)
pre_create_date = "28/04/2019"
# Sort out date format
pre_create_date = time.strptime(pre_create_date, "%d/%m/%Y")
print pre_create_date
输出:
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=28, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=118, tm_isdst=-1)
脚本使用datetime.now - datetime.timedelta
:
import datetime, time
from datetime import timedelta
N = 60
pre_create_date = datetime.datetime.today() - datetime.timedelta(days=N)
print pre_create_date
输出:
2019-03-31 21:09:25.183459
预期输出:
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=118, tm_isdst=-1)
尝试:-
import time
import datetime
print(time.strftime("%Y-%m-%d %H:%M:%S %w/%j"))
pre_create_date = (datetime.datetime.today() - datetime.timedelta(60)).strftime("%Y-%m-%d %H:%M:%S %w/%j")
print(pre_create_date)
输出:-
2019-05-30 12:59:27 4/150
2019-03-31 12:59:27 0/090
在职的:-
上面的代码首先打印出当前的时间戳(格式是你要求的)。然后输出从当前日期(今天 - 60)提前 60 天的时间戳。
只是用来strftime()
从当前日期获取我们想要的属性。
代码解释strftime()
:-
%Y Year with century as a decimal number.
%m Month as a zero-padded decimal number.
%d Day of the month as a zero-padded decimal.
%H Hour (24-hour clock) as a zero-padded decimal number.
%M Minute as a zero-padded decimal number.
%S Second as a zero-padded decimal number.
%w Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0.
%j Day of the year as a zero-padded decimal number.
注意:-通过strftime()
输出传递日期后将是数据类型string
。如果您希望输出是日期时间对象,请使用:-
datetimeobj_1 = datetime.datetime.strptime(pre_create_date, "%Y-%m-%d %H:%M:%S %w/%j")
print(type(datetimeobj_1))
输出:-
<class 'datetime.datetime'>
如果您希望输出为 'time.struct_time' 对象,请使用:-
datetimeobj_1 = time.strptime(pre_create_date, "%Y-%m-%d %H:%M:%S %w/%j")
print(type(datetimeobj_1))
输出:-
<class 'time.struct_time'>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句