处理日期和时间是任何编程语言的组成部分。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
日期时间算术
接下来,我们将看到有关日期和时间的计算示例。我们可以从给定日期添加和减去天,小时等。我们也可以将日期作为输入,并对其进行各种操作。
使用TimeDelta
例#import datetime
from datetime import *
# Find current time
dt_time_today = datetime.now()
print ("Todays 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))输出结果
运行上面的代码给我们以下结果-
Todays 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