我希望前一个月的输出为04。有人可以帮忙吗?尝试了diff格式,没有运气。
enter code here
premonth = str(int(time.strftime('%m'))-1)
尝试使用python date of the previous month但是由于strftime的限制,我无法继续。
以下f字符串将为您提供所需的内容,它还可以通过算术操作正确地处理January,以确保1
变为12
:
f'{(int(time.strftime("%m")) + 10) % 12 + 1:02}'
打破这一点,f字符串是一种从任意表达式构建字符串的现代方式,这种方式可以将格式和数据保持在一起(与旧的"string".format(item, item)
甚至older "string" % (item, item)
不同。
在f字符串中,它是一个看起来很复杂的表达式,其格式为:02
,表示两个位置,在左边用零填充。
该表达式是正确包装后正确减少月份的值,如从以下程序中看到的那样:
for month in range(1, 13):
print(f'{month:2}', '->', f'{(month + 10) % 12 + 1:02}')
此输出为:
1 -> 12
2 -> 01
3 -> 02
4 -> 03
5 -> 04
6 -> 05
7 -> 06
8 -> 07
9 -> 08
10 -> 09
11 -> 10
12 -> 11
不是最好的方法,但这应该可行:
a = str(int(time.strftime('%m'))-1)
a = '0'+a if len(a)==1 else a