在 Python 中使用日期时间创建日期范围

在本教程中,我们将了解 python 中的 datetime 模块,它可以为各种程序进行日期和时间操作。datetime 模块包含各种允许解析和格式化日期和时间格式的函数。为了创建日期,我们导入 datetime 模块并使用datetime() 构造函数。

datetime 类还可以接受不同时间和时区的其他参数,例如小时、分钟或秒。这些参数是可选的,时区参数的默认值为 0(0 表示无)。

在 Python 中实现日期时间

要使用该模块在 python 中操作日期和时间,我们需要在系统中安装 datetime 模块。在管理员模式下的命令提示符中运行以下代码。

pip install datetime

我们可以通过以下方式创建单个日期时间对象:

import datetime
 
DATE = datetime.datetime(2023, 2, 13)
 
print(DATE)

输出将是:

2023-02-13 00:00:00

使用 for 循环显示日期范围

此示例使用 datetime 模块并定义一个简单的函数来显示两个给定日期之间的日期范围。

#importing required modules
from datetime import timedelta
from datetime import date
#function for creating a range of dates
def rangeofdates(startdate, enddate):
    for n in range(int ((enddate - startdate).days)+1):
        yield startdate + timedelta(n)
#defining beginning and end dates
startdate = date(2023, 2, 13)
enddate = date(2023, 2, 24)
#displaying the dates using the functions
for dt in rangeofdates(startdate, enddate):
    print(dt.strftime("%Y-%m-%d"))

输出如下所示:

2023-02-13
2023-02-14
2023-02-15
2023-02-16
2023-02-17
2023-02-18
2023-02-19
2023-02-20
2023-02-21
2023-02-22
2023-02-23
2023-02-24
日期范围的 For 循环利用

另请阅读:使用 Python 将字母转换为数字。

使用列表创建全面的日期范围

我们可以使用该append()函数创建一个范围内的日期列表。

#importing datetime
import datetime
#setting startdate
startdate = datetime.date(2023,2,13)
  
#setting a counter
Count = 5
#range of dates as a list
datelist = []
#creating the dates list
for day in range(Count):
    date = (startdate + datetime.timedelta(days = day)).isoformat()
    datelist.append(date)
      
# printing result
print("Next 5 dates list: " + str(datelist))

上述代码的输出将是:

Next 5 dates list: ['2023-02-13', '2023-02-14', '2023-02-15', '2023-02-16', '2023-02-17']
日期列表

使用 pandas 创建日期范围

我们还可以使用 pandas 包和 datetime 来创建一系列日期。要了解有关 pandas 的更多信息,请访问官方文档

#importing datetime
import datetime
#importing pandas
import pandas as pd
# initializing the start date
startdate = datetime.datetime.strptime("13-2-2023", "%d-%m-%Y")
  
# initializing the counter for dates
count= 10
#generating the dates
date_generated = pd.date_range(startdate, periods=10)
#displaying the generated dates
print(date_generated.strftime("%d-%m-%Y"))

输出将是:

Index(['13-02-2023', '14-02-2023', '15-02-2023', '16-02-2023', '17-02-2023',
       '18-02-2023', '19-02-2023', '20-02-2023', '21-02-2023', '22-02-2023'],
      dtype='object')
使用 Pandas 处理一系列日期

自定义日期范围的开始和结束日期

我们需要开发一个程序,允许用户输入来定制我们的程序。让我们看看如何适应用户输入来创建日期范围。

#importing required modules
from datetime import timedelta
import datetime
 
#taking user input for start date
styear = int(input('Enter start year='))
stmonth = int(input('Enter start month='))
stday = int(input('Enter start day='))
datestart = datetime.date(styear, stmonth, stday)
 
#taking user input for end date
endyear = int(input('Enter last year='))
endmonth = int(input('Enter last month='))
endday = int(input('Enter last day='))
dateend = datetime.date(endyear, endmonth, endday)
 
#function for creating a range of dates
def rangeofdates(startdate, enddate):
    for n in range(int ((enddate - startdate).days)+1):
        yield startdate + timedelta(n)
 
#displaying the dates using the functions
for dt in rangeofdates(datestart, dateend):
    print(dt.strftime("%Y-%m-%d"))

上述代码的输出将是:

Enter start year=2023
Enter start month=2
Enter start day=13
Enter last year=2023
Enter last month=2
Enter last day=28
2023-02-13
2023-02-14
2023-02-15
2023-02-16
2023-02-17
2023-02-18
2023-02-19
2023-02-20
2023-02-21
2023-02-22
2023-02-23
2023-02-24
2023-02-25
2023-02-26
2023-02-27
2023-02-28
自定义并接受用户输入

另请阅读:Python 初学者在线免费课程

概括。

本文演示了使用 python 中的 datetime() 模块在用户定义的两个给定日期之间创建日期范围的各种方法。这是Python编程中非常有用的工具,可用于相应地优化或更改时间戳。要了解有关 datetime() 构造函数的更多信息,请访问官方页面