资讯

展开

利用python的arrow库,两行代码实现正反日期查询

作者:快盘下载 人气:

用来查询这样的日期,实在是有些无聊了。2011年11月2日日期写成数字形式 正反是一样的。2020年也有一个这样的日期。20200202:2020年2月2日。


但是再某些场景下就显得有用了。比如车管所说,车牌号码,反正念都一样的车牌。


用python 两行代码搞定。

首先导入一个时间包:arrow。


然后就是使用arrow进行转换格式,时间范围,for循环 最后输出

import arrow
print([r.format("YYYYMMDD") for r in arrow.Arrow.range('day', arrow.get(1900, 1, 1), arrow.get(2120, 1, 15)) if r.format("YYYYMMDD")==r.format("YYYYMMDD")[::-1]])

结果:

['20011002', '20100102', '20111102', '20200202', '20211202', '20300302', '20400402', '20500502', '20600602', '20700702', '20800802', '20900902', '21011012', '21100112', '21111112', '21200212', '21211212', '21300312', '21400412', '21500512', '21600612', '21700712', '21800812', '21900912', '22011022', '22100122', '22111122', '22200222', '22211222', '22300322', '22400422', '22500522', '22600622', '22700722', '22800822', '22900922']

说实话上边的只是为了,增加噱头。简化来说还是最简单的循环 判断 输出。

import arrow

# print([r.format("YYYYMMDD") for r in arrow.Arrow.range('day', arrow.get(1900, 1, 1), arrow.get(9999, 1, 15))
#        if r.format("YYYYMMDD")==r.format("YYYYMMDD")[::-1]])
# for r in arrow.Arrow.range('day', arrow.get(1900, 1, 1), arrow.get(2300, 1, 15)):
start = arrow.get(1900, 1, 1)  # 设置开始时间
end = arrow.get(2300, 1, 15)   # 设置结束时间

for r in arrow.Arrow.range('day', start, end):
    t = r.format("YYYYMMDD")    #日期格式转换为字符串
    t1 = t[::-1]    # 字符串翻转
    if t1 == t:
        print(t)


输出结果:

20011002
20100102
20111102
20200202
20211202
20300302
20400402
20500502
20600602
20700702
20800802
20900902
21011012
21100112
21111112
21200212
21211212
21300312
21400412
21500512
21600612
21700712
21800812
21900912
22011022
22100122
22111122
22200222
22211222
22300322
22400422
22500522
22600622
22700722
22800822
22900922

两个结果显示内容不同,两行代码的。将结果放入list中,输出的是列表。第二段代码是单独输出。也可以将结果放入list中。得到相同的结果。

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!