📅  最后修改于: 2023-12-03 15:35:20.083000             🧑  作者: Mango
时间是计算机编程中重要的一个概念,Python 提供了丰富的时间处理模块,我们可以使用它们来实现时间相关的功能。这里将介绍 Python 的时间模块和如何在 Python 中使用时间。
Python 有多个时间模块,每个模块都提供了一组不同的时间函数。以下是 Python 中常用的时间模块:
在使用任何时间模块之前,需要先导入该模块。
import time
import datetime
import calendar
from dateutil import tz, parser
time 模块主要提供了以下功能:
可以使用 time
模块中的 time()
函数来获取当前的时间戳。
import time
current_time = time.time()
print(current_time)
输出结果:
1632406689.6410403
可以使用 localtime()
函数来获取当前的本地时间,返回类型为 struct_time。
import time
local_time = time.localtime()
print(local_time)
输出结果:
time.struct_time(tm_year=2021, tm_mon=9, tm_mday=23, tm_hour=16, tm_min=31, tm_sec=29, tm_wday=3, tm_yday=266, tm_isdst=0)
使用 time
模块中的 localtime()
函数可以将时间戳转换为本地时间,再使用 strftime()
函数将时间格式化成字符串。
import time
current_time = time.time()
local_time = time.localtime(current_time)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(time_str)
输出结果:
2021-09-23 16:31:29
可以使用 strptime()
函数将时间字符串转换为时间戳。
import time
time_str = '2021-09-23 16:31:29'
time_tuple = time.strptime(time_str, '%Y-%m-%d %H:%M:%S')
time_stamp = time.mktime(time_tuple)
print(time_stamp)
输出结果:
1632406289.0
使用 time
模块中的 strftime()
函数可以将时间格式化成指定的字符串格式。
import time
local_time = time.localtime()
time_str = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(time_str)
输出结果:
2021-09-23 16:31:29
可以使用 mktime()
函数将 struct_time
转换为时间戳。
import time
local_time = time.localtime()
time_stamp = time.mktime(local_time)
print(time_stamp)
输出结果:
1632406289.0
datetime 模块主要提供了以下功能:
可以使用 date
类和 time
类来获取当前的日期和时间。
import datetime
current_date = datetime.date.today()
current_time = datetime.datetime.now().time()
print("Current date:", current_date)
print("Current time:", current_time)
输出结果:
Current date: 2021-09-23
Current time: 16:31:29.942676
可以使用 strptime()
函数将日期和时间从字符串中提取出来。
import datetime
time_str = '2021-09-23 16:31:29'
time_tuple = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print(time_tuple.date())
print(time_tuple.time())
输出结果:
2021-09-23
16:31:29
可以使用 strftime()
函数将日期时间格式化为指定的字符串格式。
import datetime
current_time = datetime.datetime.now()
time_str = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(time_str)
输出结果:
2021-09-23 16:31:29
calendar 模块主要提供了以下功能:
可以使用 calendar
模块中的 calendar()
函数构建一个万年历。
import calendar
cal = calendar.calendar(2021)
print(cal)
输出结果:
2021
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 6 7
4 5 6 7 8 9 10 8 9 10 11 12 13 14 8 9 10 11 12 13 14
11 12 13 14 15 16 17 15 16 17 18 19 20 21 15 16 17 18 19 20 21
18 19 20 21 22 23 24 22 23 24 25 26 27 28 22 23 24 25 26 27 28
25 26 27 28 29 30 31 29 30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1 2 1 2 3 4 5 6
5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
26 27 28 29 30 28 29
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1 1 2 3 4 5
5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
30 31
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
25 26 27 28 29 30 31 29 30 27 28 29 30 31
可以使用 isleap()
函数判断某一年是否为闰年。
import calendar
is_leap = calendar.isleap(2024)
print(is_leap)
输出结果:
True
可以使用 monthrange()
函数获取某一月份的天数和第一天的星期几。
import calendar
month_range = calendar.monthrange(2021, 9)
print(month_range)
输出结果:
(2, 30)
可以使用 weekday()
函数获取某一天是星期几。
import calendar
weekday = calendar.weekday(2021, 9, 23)
print(weekday)
输出结果:
3
可以使用 monthcalendar()
函数获取某一月份中所有日期和星期几。
import calendar
month_calendar = calendar.monthcalendar(2021, 9)
print(month_calendar)
输出结果:
[[0, 0, 0, 0, 0, 0, 1],
[2, 3, 4, 5, 6, 7, 8],
[9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22],
[23, 24, 25, 26, 27, 28, 29],
[30, 0, 0, 0, 0, 0, 0]]
dateutil 模块主要提供了以下功能:
可以使用 parser.parse()
函数来处理复杂的日期时间字符串,例如:
from dateutil import parser
date_str = "October 30, 2021 15:30:00"
date_time = parser.parse(date_str)
print(date_time)
输出结果:
2021-10-30 15:30:00
可以使用 tz.utc
表示协调世界时 (UTC),也可以使用 datetime.tzinfo
表示自定义的时区信息。
from datetime import datetime, timedelta, timezone
# 获取当前时间
now = datetime.now()
# 设置时区
tz_info = timezone(timedelta(hours=8))
# 更新时区信息
now = now.replace(tzinfo=tz_info)
# 获取当前时间在 UTC 时间的时间戳
utc_now = now.astimezone(tz.utc)
timestamp = utc_now.timestamp()
print(now)
print(utc_now)
print(timestamp)
输出结果:
2021-09-23 16:31:29.341774+08:00
2021-09-23 08:31:29.341774+00:00
1632395489.341774
可以使用 tz.gettz()
函数支持世界时间。
from datetime import datetime
from dateutil import tz
# 世界时间
world_time = datetime(2021, 9, 23, 8, 0, tzinfo=tz.gettz('UTC'))
# 本地时间
local_time = world_time.astimezone(tz.tzlocal())
print(world_time)
print(local_time)
输出结果:
2021-09-23 08:00:00+00:00
2021-09-23 16:00:00+08:00
这篇文章介绍了 Python 中的时间模块,包括 time、datetime、calendar 和 dateutil 模块。time 模块提供了基本的时间处理功能,datetime 模块提供了高级的日期时间处理功能,calendar 模块提供了日历处理功能,dateutil 模块提供了时区、夏令时等高级功能,可以根据需要选择合适的模块来处理时间和日期。