目前我正尝试使用以下代码将当前日期修剪为日,月和年。
#Code from my local machine
from datetime import datetime
from datetime import timedelta
five_days_ago = datetime.now()-timedelta(days=5)
# result: 2017-07-14 19:52:15.847476
get_date = str(five_days_ago).rpartition(' ')[0]
#result: 2017-07-14
#Extract the day
day = get_date.rpartition('-')[2]
# result: 14
#Extract the year
year = get_date.rpartition('-')[0])
# result: 2017-07
我不是Python专业人士,因为我在几个月前掌握了这门语言,但我想了解一些事情:
我在以下技术中尝试了我的代码。设置: 使用Python 3.5.2(x64),Python 3.6.1(x64)和使用Python 3.6.1的repl.it的本地机器
答案 0 :(得分:3)
尝试以下方法:
from datetime import date, timedelta
five_days_ago = date.today() - timedelta(days=5)
day = five_days_ago.day
year = five_days_ago.year
如果您想要的是日期(不是日期和时间),请使用date
代替datetime
。然后,日期和年份只是date
对象上的属性。
关于rpartition
的问题,它的工作原理是拆分最右边的分隔符(在你的情况下,是月份和日期之间的连字符) - 那是什么r
中的rpartition
表示。因此get_date.rpartition('-')
会返回['2017-07', '-', '14']
。
如果您希望坚持自己的方法,那么如果您将year
替换为rpartition
,则partition
代码将会生效,例如:
year = get_date.partition('-')[0]
# result: 2017
然而,还有相关(更好)的方法 - 使用split
:
parts = get_date.split('-')
year = parts[0]
month = parts[1]
day = parts[2]