如何在Python中将日期转换为日期时间?

如何在Python中将日期转换为日期时间?

在Python中,日期和日期时间都可以作为对象进行处理。日期是指年、月、日这三个元素的组合,而日期时间则是在日期的基础上再添加小时、分钟、秒等元素,也可以称作时间戳。在一些业务场景中,需要将日期转换为日期时间,比如将数据库中的日期数据转换为可以用于计算的日期时间数据。本文将介绍如何在Python中将日期转换为日期时间,并给出代码示例。

更多Python文章,请阅读:Python 教程

datetime库

Python中日期和日期时间的处理主要依托于标准库datetime。datetime模块提供了date、time、datetime三个类,用于处理日期、时间、日期时间的相关操作。其中,datetime类可以表示一个完整的日期时间数据。比如:

from datetime import datetime

dt = datetime(2021, 10, 1, 12, 30, 0) # 2021年10月1日12点30分0秒
print(dt)

输出结果为:

2021-10-01 12:30:00

上面的代码中,使用datetime类初始化一个日期时间对象。datetime类的初始化参数依次为:年、月、日、小时、分钟、秒。

将日期转换为日期时间

在Python中将日期转换为日期时间的方法很简单,只需要使用datetime.combine()方法即可。示例代码如下:

from datetime import date, datetime

d = date(2021, 10, 1) # 日期
dt = datetime.combine(d, datetime.min.time()) # 转换为日期时间
print(dt)

输出结果为:

2021-10-01 00:00:00

上面的示例代码中,首先使用date类初始化一个日期对象d,然后将d转换为日期时间,转换使用了datetime.combine()方法。该方法的第一个参数为日期对象,第二个参数为时间对象,因为我们只需要日期的零点零分零秒,所以第二个参数使用了datetime.min.time()方法,该方法返回的是时间的最小值,也就是0点0分0秒。

将日期时间转换为日期

有时候需要将一个日期时间对象转换为日期。同样,Python提供了datetime对象的date()方法可以实现此功能。示例代码如下:

from datetime import date, datetime

dt = datetime(2021, 10, 1, 12, 30, 0) # 日期时间
d = dt.date() # 转换为日期
print(d)

输出结果为:

2021-10-01

上面的示例代码中,首先使用datetime类初始化一个日期时间对象dt,然后将dt转换为日期d,转换使用了datetime.date()方法。

使用strftime()格式化日期时间

Python中可以使用strftime()方法对日期时间进行格式化。strftime()方法接受一个字符串作为格式化模板,然后对日期时间进行格式化输出。格式化字符串中以%开头的字符都有特殊含义,比如%Y表示四位数的年份,%m表示月份,%d表示日等。示例代码如下:

from datetime import datetime

dt = datetime(2021, 10, 1, 12, 30, 0) # 日期时间
str_dt = dt.strftime('%Y-%m-%d %H:%M:%S') # 格式化输出
print(str_dt)

输出结果为:

2021-10-01 12:30:00

上面的代码中,使用datetime类初始化一个日期时间对象dt,然后使用strftime()方法将日期时间格式化为字符串,格式化字符串为’%Y-%m-%d %H:%M:%S’,表示输出格式为年-月-日 时:分:秒。

使用strptime()将字符串转换为日期时间

除了将日期转换为日期时间,有时候还需要将格式化好的字符串转换为日期时间。Python中可以使用strptime()方法来将字符串转换为datetime类对象。strptime()方法接收两个参数:第一个参数为待转换的字符串,第二个参数为格式化字符串。示例代码如下:

from datetime import datetime

str_dt = '2021-10-01 12:30:00' # 字符串
dt = datetime.strptime(str_dt, '%Y-%m-%d %H:%M:%S') # 转换为日期时间
print(dt)

输出结果为:

2021-10-01 12:30:00

上面的代码中,首先定义一个字符串str_dt,然后使用strptime()方法将该字符串转换为日期时间对象dt,转换使用的格式化字符串为’%Y-%m-%d %H:%M:%S’,与上面的示例代码中的strftime()方法的格式化字符串一致。

时间运算

在实际业务中,可能需要对日期时间进行加减运算等操作。Python中可以使用timedelta类实现时间的加减运算。timedelta类提供了days、seconds、microseconds三个属性,可以用于表示时间间隔。示例代码如下:

from datetime import datetime, timedelta

dt1 = datetime(2021, 10, 1, 12, 30, 0) # 日期时间1
dt2 = datetime(2021, 10, 2, 12, 30, 0) # 日期时间2
delta = dt2 - dt1 # 时间间隔
print(delta.days) # 相差天数
print(delta.seconds) # 相差秒数

dt3 = dt1 + timedelta(hours=1) # 增加1个小时
print(dt3)

dt4 = dt1 - timedelta(days=1) # 减少1天
print(dt4)

输出结果为:

1
86400
2021-10-01 13:30:00
2021-09-30 12:30:00

上面的代码中,首先使用datetime类初始化两个日期时间对象dt1和dt2,然后计算它们之间的时间间隔,并输出相差的天数和秒数。接着使用timedelta类对日期时间进行加减运算,增加1个小时和减少1天,分别得到了新的日期时间对象dt3和dt4。

结论

在Python中,使用datetime库可以方便地处理日期和日期时间。将日期转换为日期时间可以使用datetime.combine()方法,将日期时间转换为日期可以使用datetime.date()方法。可以使用strftime()方法将日期时间格式化输出,使用strptime()方法将字符串转换为日期时间对象。而时间的加减运算可以使用timedelta类来实现。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程