处理日期和时间是任何编程语言的组成部分。Python具有包含datetime模块的标准库,该模块具有几乎所有用于实现涉及日期和时间的计算的功能。在以下示例中,我们将看到如何实现日期时间的各个方面。
datetime模块具有一个名为datetime的类。我们可以导入此类并使用其功能创建日期时间对象。然后应用各种格式化技术来显示日期和时间值。因此,首先我们创建一个使用now()函数初始化的datetime对象。该对象保存当前日期和时间的所有部分,然后我们操纵它的不同部分。
from datetime import datetime dt_time_obj = datetime.now() # Print the current date time print(dt_time_obj) # Find the object class print('Object Class :- ',type(dt_time_obj))
输出结果
运行上面的代码给我们以下结果-
2020-01-22 09:33:02.693863 Object Class :-
我们可以使用strptime和strftime方法将字符串转换为datetime并将datetime转换为字符串。当我们处理不同的数据源时,这种转换是必需的,在这些数据源中,数据可能无法以python所需的确切格式呈现为日期时间。在下面的示例中,我们将一个字符串并将其转换为日期时间。并且也做相反的动作。
from datetime import datetime dt_string = '2020-1-30 2-52-59' # Create date object from String date_val = datetime.strptime(dt_string, "%Y-%m-%d %H-%M-%S") print(date_val) print('Class: ',type(date_val)) print("\n") # Create String from Date Object date_val_str = datetime.strftime(date_val, "%Y-%m-%d %H-%M-%S") print(date_val_str) print('Class: ',type(date_val_str))
运行上面的代码给我们以下结果-
2020-01-30 02:52:59 Class: 2020-01-30 02-52-59 Class:
我们可以使用指令和strftime方法提取日期的不同部分。以下是有关不同指令及其用途的一些示例的列表。有关所有指令的完整列表,请参阅python文档。
指示 | 用法 |
---|---|
%A | 平日 |
%B | 月 |
%M | 分钟 |
%Y | 年 |
%d | 每月的一天 |
以下示例显示了如何使用伪指令。
from datetime import datetime dt_string = '2020-1-30 2-52-59' # Create date object from String date_val = datetime.strptime(dt_string, "%Y-%m-%d %H-%M-%S") #Return the year and name of weekday, month,Day of month: print(date_val.year) print(date_val.strftime("%d")) print(date_val.strftime("%B")) print(date_val.strftime("%A"),"\n")
运行上面的代码给我们以下结果-
2020 30 January Thursday
接下来,我们将看到有关日期和时间的计算示例。我们可以从给定日期添加和减去天,小时等。我们也可以将日期作为输入,并对其进行各种操作。
#import datetime from datetime import * # Find current time dt_time_today = datetime.now() print ("Today's date: ", str(dt_time_today)) #add 5 days to current new_date = dt_time_today + timedelta(days = 5) print('After 5 days: ', new_date) #Remove 2 weeks from current date two_weeks_back = dt_time_today - timedelta(weeks = 2) print('Two weeks ago: ', two_weeks_back) print('two_weeks_back object type: ', type(two_weeks_back))
运行上面的代码给我们以下结果-
Today's date: 2020-01-29 12:38:03.290795 After 5 days: 2020-02-03 12:38:03.290795 Two weeks ago: 2020-01-15 12:38:03.290795 two_weeks_back object type:
我们可以在两个日期之间应用一些运算符。可以使用减号运算符找出日期差,并可以使用逻辑运算符比较日期。
from datetime import datetime # Given Dates date1 = datetime(2018,5, 12, 8, 11, 53) date2 = datetime(2017, 6, 16, 12, 43, 27) # Difference between two dates date_diff = date1-date2 print("Difference: ", date_diff) # Comparing two dates print(date1 < date2)
运行上面的代码给我们以下结果-
Difference: 329 days, 19:28:26 False