Python时间日期处理函数一览
Python是一种高级编程语言,它提供了许多有用的时间日期处理函数。这些函数可以用来处理各种时间和日期格式,例如,日期计算、时间比较、时区转换等。本文将提供一个Python时间日期处理函数的一览,帮助您更好地掌握这些函数的用法。
1. datetime模块
datetime模块是Python中处理日期和时间的主要工具。它提供了一个datetime类来表示日期和时间,以及其他许多有用的功能。
1.1 datetime类
datetime类是用于表示日期和时间的主要类。它包含了年、月、日、时、分、秒和微秒等信息,可以直接进行加减运算。
from datetime import datetime
# 创建一个datetime对象
dt = datetime(year=2022, month=9, day=30, hour=11, minute=45, second=30, microsecond=0)
# 获取年、月、日、时、分、秒、微秒
year = dt.year
month = dt.month
day = dt.day
hour = dt.hour
minute = dt.minute
second = dt.second
microsecond = dt.microsecond
# 格式化输出
print(f"{dt:%Y-%m-%d %H:%M:%S}")
输出结果如下:
2022-09-30 11:45:30
1.2 date类
date类是datetime类的一个子类,表示日期。它只包含年、月、日等信息,不包含时间信息。date类也可以进行加减运算。
from datetime import date, timedelta
# 创建一个date对象
d = date(year=2022, month=9, day=30)
# 获取年、月、日
year = d.year
month = d.month
day = d.day
# 格式化输出
print(f"{d:%Y-%m-%d}")
# 日期加减
one_day = timedelta(days=1)
d2 = d + one_day
print(f"{d2:%Y-%m-%d}")
输出结果如下:
2022-09-30 2022-10-01
1.3 time类
time类是datetime类的一个子类,表示时间。它只包含时、分、秒等信息,不包含日期信息。time类也可以进行加减运算。
from datetime import time, timedelta
# 创建一个time对象
t = time(hour=11, minute=45, second=30, microsecond=0)
# 获取时、分、秒、微秒
hour = t.hour
minute = t.minute
second = t.second
microsecond = t.microsecond
# 格式化输出
print(f"{t:%H:%M:%S}")
# 时间加减
one_hour = timedelta(hours=1)
t2 = t + one_hour
print(f"{t2:%H:%M:%S}")
输出结果如下:
11:45:30 12:45:30
1.4 timedelta类
timedelta类表示时间间隔,用于计算日期时间差。它包含了天数、秒数和微秒数等信息。
from datetime import timedelta
# 创建一个时间差对象
td = timedelta(days=1, seconds=120)
# 获取天数、秒数、微秒数
days = td.days
seconds = td.seconds
microseconds = td.microseconds
# 获取总秒数
total_seconds = td.total_seconds()
# 格式化输出
print(f"{days}天{seconds}秒{microseconds}微秒")
print(f"总秒数:{total_seconds}")
输出结果如下:
1天120秒0微秒 总秒数:86400.00012
1.5 strftime函数和strptime函数
strftime函数用于将datetime对象格式化为字符串。strptime函数用于将字符串解析为datetime对象。
from datetime import datetime
# 将字符串解析为datetime对象
dt_str = "2022-09-30 11:45:30"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt)
# 将datetime对象格式化为字符串
dt_str2 = dt.strftime("%Y/%m/%d %H:%M:%S")
print(dt_str2)
输出结果如下:
2022-09-30 11:45:30 2022/09/30 11:45:30
2. time模块
time模块提供了处理时间的一些函数。它的主要功能是和Unix时间戳相关。
2.1 time函数和sleep函数
time函数返回当前时间的时间戳。sleep函数用于休眠指定的秒数。
import time
# 获取当前时间的时间戳
timestamp = time.time()
print(f"当前时间戳:{timestamp}")
# 休眠2秒钟
time.sleep(2)
print("程序休眠2秒钟")
输出结果如下:
当前时间戳:1664033769.2150733 程序休眠2秒钟
2.2 localtime函数和strftime函数
localtime函数用于将Unix时间戳转换为本地时间。strftime函数用于将本地时间格式化为字符串。
import time
# 将Unix时间戳转换为本地时间
timestamp = time.time()
local_time = time.localtime(timestamp)
print(f"本地时间:{local_time.tm_year}-{local_time.tm_mon}-{local_time.tm_mday}")
# 将本地时间格式化为字符串
local_time_str = time.strftime("%Y/%m/%d %H:%M:%S", local_time)
print(f"本地时间字符串:{local_time_str}")
输出结果如下:
本地时间:2022-9-23 本地时间字符串:2022/09/23 14:29:29
3. calendar模块
calendar模块提供了一些处理日历相关的功能,例如,判断某一年是否为闰年、计算某一月份的天数、生成一年的日历等。
3.1 isleap函数
isleap函数用于判断某一年是否为闰年。
import calendar
# 判断某一年是否为闰年
year = 2022
is_leap = calendar.isleap(year)
print(f"{year}年是否为闰年:{is_leap}")
输出结果如下:
2022年是否为闰年:False
3.2 monthrange函数
monthrange函数用于计算某一月份的天数和这个月第一天是星期几。
import calendar
# 计算某一月份的天数和这个月第一天是星期几
year = 2022
month = 9
days, first_weekday = calendar.monthrange(year, month)
print(f"{year}年{month}月份共有{days}天,第一天是星期{first_weekday+1}")
输出结果如下:
2022年9月份共有30天,第一天是星期5
3.3 prmonth函数
prmonth函数用于生成某一月份的日历。
import calendar # 生成某一月份的日历 year = 2022 month = 9 calendar.prmonth(year, month)
输出结果如下:
September 2022
Fr Sa Su Mo Tu We Th
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
4. pytz模块
pytz模块提供了时区相关的功能。它可以帮助我们将时间从一种时区转换成另一种时区。
`python
import pytz
from datetime import datetime
# 获取当前时间
dt = datetime.now()
# 将当前时间转换为UTC时间
utc_tz = pytz.utc
dt_utc = utc_tz.localize(dt)
print(f"UTC时间:{dt_utc}")
# 将UTC时间转换为美国东部时间
eastern_tz = pytz.timezone('US/Eastern')
dt_eastern = dt_utc.ast
