python循环打印日期

场景: 循环打印 2020-01-01 到 2020-01-05 时间

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from datetime import datetime, timedelta

def main():
	#字符串 “2020-01-01 09:00:00” 转 时间。函数: datetime.strptime
    start_time = datetime.strptime("2020-01-01 09:00:00", "%Y-%m-%d %H:%M:%S")
    end_time = datetime.strptime("2020-01-05 23:00:00", "%Y-%m-%d %H:%M:%S")
    current_data = start_time.date()
    while current_data <= end_time.date():
    	# 时间 转 字符串 。 函数 strftime
        current_data_str = current_data.strftime("%Y-%m-%d")
        print("current_data = %s " % str(current_data_str))
        current_data = current_data + timedelta(days=1)


if __name__ == "__main__":
    main()

执行结果:
在这里插入图片描述
函数说明:

datetime.strptime(string[, format]) :函数根据指定的格式把一个时间字符串解析为时间
string – 时间字符串。
format – 格式化字符串。
如: time=datetime.strptime(“2020-01-01 09:00:00”, “%Y-%m-%d %H:%M:%S”)
具体说明参考: https://www.runoob.com/python/att-time-strptime.html

strftime(format) :函数根据指定的格式把一个时间转化成字符串:
format – 格式化字符串。
如: time.strftime("%Y-%m-%d %H:%M:%S")
带中文字符格式:
time.strftime("%Y年%m月%d日 %H时%M分%S秒".encode(‘unicode_escape’).decode(‘utf8’),t).encode(‘utf-8’).decode(‘unicode_escape’)

具体说明参考: https://www.runoob.com/python/att-time-strftime.html

timedelta : 实现日期时间相加 如:weeks,days,hours,minutes,seconds,microseconds

Python 当前时间增加或减少一个月

current_data + relativedelta(months=+1)

安装这个库也很简单,执行命令: pip install python-dateutil

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta


def main():
    # 字符串 “2020-01-01 09:00:00” 转 时间。函数: datetime.strptime
    start_time = datetime.strptime("2019-11-01 00:00:00", "%Y-%m-%d %H:%M:%S")
    end_time = datetime.strptime("2020-08-01 23:00:00", "%Y-%m-%d %H:%M:%S")
    current_data = start_time.date()
    while current_data <= end_time.date():
        # 时间 转 字符串 。 函数 strftime
        start_date = current_data.strftime("%Y-%m-%d")
        end_date_time = current_data + relativedelta(months=+1) - timedelta(days=1)
        end_date = end_date_time.strftime("%Y-%m-%d")

        print("start_date = %s , end_date = %s " % (str(start_date), str(end_date)))
        current_data = current_data + relativedelta(months=+1)


if __name__ == "__main__":
    main()

执行结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值