Python:如何用一行代码获取上个月是几月( 二 )


>>> type(t)

>>> t
datetime.datetime(2018, 8, 24, 7, 17, 14, 884750, tzinfo=tzlocal())
通过 Arrow 对象你可以得到时间戳
>>> a.timestamp
1535066234

获取 arrow 对象的年、月、日、时、分、秒
>>> a.year
2018
>>> a.month
8
>>> a.day
24
>>> a.hour
7

获取 arrow 对象的时间和日期
>>> a.date()
datetime.date(2018, 8, 24)
>>> a.time()
datetime.time(7, 9, 3, 468562)

注意,获取时间和日期是用方法,而获取和是两个属性
接下来介绍一些 arrow 有意思的方法
shift
shift 有点像游标卡尺,可以左右两边进行加减移位操作,加减的对象可以是年月日时分秒和星期 。再回到文章开始地方,想获取当前月的前一个月,你可以这样写:
>>> a.shift(months=-1)
2018-07-24T07:09:03.468562+08:00]>
>>> a.shift(months=-1).format("YYYYMM")
'201807'
>>>

指定参数= -1 就可以了 。往后一个月就是 month=+1,加号可以省略 。这样你可以基于一个 arrow 时间对象进行任意的往前加或者往后减 。注意 month 后面有个s,year 同理 。以下是一些例子 。
加一个月
>>> a.shift(months=1)
2018-09-24T07:09:03.468562+08:00]>

减一个月
>>> a.shift(months=-1)
2018-07-24T07:09:03.468562+08:00]>

减两年
>>> a.shift(years=-2)
2016-08-24T07:09:03.468562+08:00]>
>>>

加一个小时
>>> a.shift(hours=1)
2018-08-24T08:09:03.468562+08:00]>

还可以按周进行加减
>>> a.shift(weeks=1)