Python上个月有2位数字

问题描述 投票:0回答:2

我希望前一个月的输出为04。有人可以帮忙吗?尝试了diff格式,没有运气。

enter code here
premonth = str(int(time.strftime('%m'))-1)

尝试使用python date of the previous month但是由于strftime的限制,我无法继续。

python-3.x datetime python-datetime
2个回答
1
投票

以下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

0
投票

不是最好的方法,但这应该可行:

a = str(int(time.strftime('%m'))-1)
a = '0'+a if len(a)==1 else a 
© www.soinside.com 2019 - 2024. All rights reserved.