Python 时间转化总结

1. Python中的时间处理模块datetime

Python中的时间处理模块datetime可以用来处理日期和时间。在datetime模块中,时间有多种表示方式,比如时间元组、时间字符串等。datetime模块还提供了许多方法用于获取当前时间、计算时间差、格式化时间等操作。

获取当前时间可以使用datetime模块中的datetime类的now方法,如下所示:

import datetime

now = datetime.datetime.now()

print(now)

运行以上代码,会输出当前时间的日期和时间:

2022-09-05 14:34:45.645541

可以使用datetime类的strftime方法对datetime对象进行格式化输出,如下所示:

import datetime

now = datetime.datetime.now()

print(now.strftime('%Y-%m-%d %H:%M:%S'))

运行以上代码,会输出当前时间的日期和时间,格式为"%Y-%m-%d %H:%M:%S":

2022-09-05 14:34:45

其中,%Y表示年份(四位数字),%m表示月份(两位数字),%d表示日期(两位数字),%H表示小时数(24小时制,两位数字),%M表示分钟数(两位数字),%S表示秒数(两位数字)。

2. Python中的时间戳处理模块time

Python中的时间戳处理模块time可以用于获取计算机系统的时间戳,或者将时间戳转换成人类可读的日期时间。time模块提供了许多方法用于获取当前时间戳、睡眠等待、获取CPU时钟等操作。

获取当前时间戳可以使用time模块中的time函数,如下所示:

import time

timestamp = time.time()

print(timestamp)

运行以上代码,会输出当前时间的时间戳:

1662020086.396334

可以使用time模块中的localtime函数将时间戳转换成时间元组,如下所示:

import time

timestamp = time.time()

localtime = time.localtime(timestamp)

print(localtime)

运行以上代码,会输出当前时间的时间元组:

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=5, tm_hour=14, tm_min=34, tm_sec=46, tm_wday=0, tm_yday=248, tm_isdst=0)

可以使用time模块中的strftime方法对时间元组进行格式化输出,如下所示:

import time

timestamp = time.time()

localtime = time.localtime(timestamp)

print(time.strftime('%Y-%m-%d %H:%M:%S', localtime))

运行以上代码,会输出当前时间,格式为"%Y-%m-%d %H:%M:%S":

2022-09-05 14:34:46

3. Python中的时间运算处理

在Python中,可以使用datetime模块中的timedelta类表示两个日期或时间之间的时间差。timedelta类支持加、减、乘、除等运算,以及比较运算。

3.1 加减运算

可以使用datetime类的加减运算来计算日期时间的加减运算,如下所示:

import datetime

now = datetime.datetime.now()

delta = datetime.timedelta(days=1)

tomorrow = now + delta

print(tomorrow.strftime('%Y-%m-%d'))

运行以上代码,会输出当前时间的明天的日期,格式为"%Y-%m-%d":

2022-09-06

可以通过减去两个datetime对象来计算它们之间的时间差,如下所示:

import datetime

now = datetime.datetime.now()

future = datetime.datetime.now() + datetime.timedelta(days=10)

delta = future - now

print(delta.days)

运行以上代码,会输出当前时间到未来10天的时间差,单位为天数:

10

3.2 比较运算

可以通过比较两个datetime对象的大小来判断它们之间的先后顺序,如下所示:

import datetime

now = datetime.datetime.now()

future = datetime.datetime.now() + datetime.timedelta(days=10)

print(now < future)

print(now > future)

运行以上代码,会输出当前时间是否早于未来10天的时间,以及未来10天的时间是否早于当前时间:

True

False

也可以通过比较两个时间戳的大小来判断它们之间的先后顺序,如下所示:

import time

now = time.time()

future = time.time() + 86400

print(now < future)

print(now > future)

运行以上代码,会输出当前时间戳是否早于未来一天的时间戳,以及未来一天的时间戳是否早于当前时间戳:

True

False

4. Python中的时间格式化处理

在Python中,可以使用datetime模块中的strftime函数对日期时间进行格式化输出,也可以使用strptime函数将字符串解析成日期时间。

4.1 格式化时间

可以使用datetime对象的strftime方法对日期时间进行格式化输出,如下所示:

import datetime

now = datetime.datetime.now()

print(now.strftime('%Y-%m-%d %H:%M:%S'))

运行以上代码,会输出当前时间的日期和时间,格式为"%Y-%m-%d %H:%M:%S":

2022-09-05 14:34:46

还可以使用time模块中的strftime函数对时间戳进行格式化输出,如下所示:

import time

timestamp = time.time()

print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp)))

运行以上代码,会输出当前时间,格式为"%Y-%m-%d %H:%M:%S":

2022-09-05 14:34:47

4.2 解析时间

可以使用datetime模块中的strptime函数将字符串解析成日期时间,如下所示:

import datetime

date_string = '2022-09-05 14:34:47'

date_object = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')

print(date_object)

运行以上代码,会输出字符串转换成的日期时间:

2022-09-05 14:34:47

其中,第一个参数是要解析的字符串,第二个参数是字符串的格式,%Y、%m、%d、%H、%M和%S是代表年、月、日、小时、分钟和秒的格式化符号。

5. Python中的时间戳转换成日期时间

在Python中,可以使用datetime模块中的fromtimestamp方法将时间戳转换成日期时间,如下所示:

import datetime

timestamp = 1479427200

date_object = datetime.datetime.fromtimestamp(timestamp)

print(date_object)

运行以上代码,会输出时间戳转换成的日期时间:

2016-11-18 00:00:00

6.结语

Python中的时间处理模块datetime和时间戳处理模块time提供了丰富的时间处理函数,可以方便地进行时间数据的处理。在实际应用中,需要根据具体需求选择合适的方法进行操作。

后端开发标签