一、时间的基本概念
计算机系统中保存的时间是Unix时间戳,即从1970年1月1日00:00:00 UTC到当前时刻经过的秒数。在Python中,我们使用time模块中的time函数来获取当前的Unix时间戳。
import time print(time.time())
输出结果:
1605079078.975342
如果需要将Unix时间戳转换为可读性更好的时间格式,我们可以使用time模块中的gmtime函数(可自定义时区)或localtime函数(获取本地时间)。
import time t = time.gmtime() print(time.strftime('%Y-%m-%d %H:%M:%S', t))
输出结果:
2020-11-12 02:51:18
二、时间的操作和计算
在Python中,我们可以使用datetime模块中的datetime类来进行时间的操作和计算。
1. 获取当前时间
from datetime import datetime now = datetime.now() print(now)
输出结果:
2020-11-12 10:03:27.673462
2. 时间字符串的转换
from datetime import datetime str_time = '2020-11-12 10:03:27' dt_time = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S') print(dt_time)
输出结果:
2020-11-12 10:03:27
3. 时间的加减
from datetime import datetime, timedelta now = datetime.now() delta = timedelta(days=1, hours=1, minutes=1, seconds=1) new_time = now + delta print(new_time)
输出结果:
2020-11-13 11:04:28.819183
4. 时间的比较
from datetime import datetime, timedelta now = datetime.now() past_time = now - timedelta(days=1) future_time = now + timedelta(days=1) print(now > past_time) # True print(now < future_time) # True
输出结果:
True True
三、时间戳与时间字符串的转换
有时候我们需要将时间戳转换为时间字符串,或者将时间字符串转换为时间戳。
1. 时间戳转换为时间字符串
import time timestamp = time.time() str_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp)) print(str_time)
输出结果:
2020-11-12 10:09:01
2. 时间字符串转换为时间戳
import time str_time = '2020-11-12 10:09:01' timestamp = time.mktime(time.strptime(str_time, '%Y-%m-%d %H:%M:%S')) print(timestamp)
输出结果:
1605125341.0
四、时区的处理
在Python中,我们可以使用pytz模块来处理时区问题。该模块提供了强大的时区支持,能够使我们轻松地转换时间。
1. 获取指定时区当前时间
from datetime import datetime import pytz tz = pytz.timezone('Asia/Shanghai') dt_time = datetime.now(tz) print(dt_time)
输出结果:
2020-11-12 10:22:48.393029+08:00
2. 转换时区
from datetime import datetime import pytz tz1 = pytz.timezone('Asia/Shanghai') tz2 = pytz.timezone('America/New_York') dt_time = datetime.now(tz1) new_time = dt_time.astimezone(tz2) print(new_time)
输出结果:
2020-11-11 21:27:20.178964-05:00
五、总结
本文从时间的基本概念、时间的操作和计算、时间戳与时间字符串的转换以及时区的处理等多个方面对Python系统时间进行了详细的阐述,希望对大家有所帮助。