繁体   English   中英

使用日期时间 python 保持日期格式

[英]Keep date format with datetime python

我试图在将日期转换为日期时间后保留日期格式,然后将其拆分为年/月/日。

我需要我的 python 代码来读取一个 start_date 和一个 end_date 作为 arguments,然后每天都经历这些天并执行一个操作(为了这个问题,我们说只是打印)。 问题是,我希望这些日期以输入格式打印,所以如果我的命令行是: print_dates.py 2020-01-07 2020-01-10那么我的代码将打印:

year: 2020, month: 01, day: 07
year: 2020, month: 01, day: 08
year: 2020, month: 01, day: 09

但是如果我的输入是print_dates.py 2020-1-7 2020-1-10这将打印:

year: 2020, month: 1, day: 7
year: 2020, month: 1, day: 8
year: 2020, month: 1, day: 9

我的代码如下,但无论输入日期的格式是什么,此代码都会给出相同的 output。

start_date_dt = datetime.strptime(start_date, "%Y-%m-%d")
end_date_dt = datetime.strptime(end_date, "%Y-%m-%d")
n_days = int((end_date_dt - start_date_dt).days)
for n in rage(n_days):
    d = start_date_dt + timedelta(n)
    print("year: {}, month: {}, day: {}".format(d.year, d.month, d.day))

检测格式会有点棘手。 可能有一个地方,但我不知道有任何库将日期字符串解析为格式字符串(无论如何,您需要比 strptime 使用更多的格式选项)。 如果没有,你可能不得不为你关心的情况手动滚动你自己的解析器。

也就是说,如果您只需要知道是否必须进行零填充,那么请考虑以下内容:

if zero_pad:
    print("year: {:02d}, month: {:02d}, day: {:02d}".format(d.year, d.month, d.day))
else:
    print("year: {}, month: {}, day: {}".format(d.year, d.month, d.day))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM