您的位置:

Python系统时间详解

一、时间的基本概念

计算机系统中保存的时间是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系统时间进行了详细的阐述,希望对大家有所帮助。