场景: 循环打印 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()
执行结果: