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提供了丰富的时间处理函数,可以方便地进行时间数据的处理。在实际应用中,需要根据具体需求选择合适的方法进行操作。