Python日期和时间函数,轻松处理时间数据
在Python中,有一些强大且方便的日期和时间函数,可以帮助我们轻松处理时间数据。在这篇文章中,我们将介绍一些常用的日期和时间函数及其用法。
1. datetime模块
datetime是Python中处理日期和时间的标准模块。它提供了一些类和函数来处理日期和时间。我们可以使用datetime类来创建日期和时间对象,也可以将日期和时间转换为字符串。
1.1 datetime类
datetime类是Python中处理日期和时间的核心类。它有5个部分:年、月、日、时、分、秒和微秒。我们可以使用datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)来创建一个datetime对象。
例如:
from datetime import datetime d = datetime(2021, 7, 6, 12, 30, 00) print(d)
运行结果为:
2021-07-06 12:30:00
1.2 strftime()函数
strftime()函数用于将日期和时间格式化为字符串。它的语法为:strftime(format)。其中,format是一个字符串,它包含一些特定格式的占位符,如%Y、%m、%d等。
例如:
from datetime import datetime
d = datetime(2021, 7, 6, 12, 30, 00)
print(d.strftime("%Y-%m-%d %H:%M:%S"))
运行结果为:
2021-07-06 12:30:00
1.3 strptime()函数
strptime()函数用于将字符串解析为日期和时间对象。它的语法为:strptime(string, format)。其中,string是要解析的字符串,format是与字符串对应的日期和时间格式。
例如:
from datetime import datetime
d = datetime.strptime("2021-07-06 12:30:00", "%Y-%m-%d %H:%M:%S")
print(d)
运行结果为:
2021-07-06 12:30:00
2. time模块
time模块是Python中处理时间的另一个重要模块。它包含了一些函数,可以让我们获取当前时间、处理时间戳等。
2.1 time()函数
time()函数返回当前时间的时间戳,它表示从1970年1月1日00:00:00以来的秒数。
例如:
import time t = time.time() print(t)
运行结果为:
1625701556.5705495
2.2 localtime()函数
localtime()函数将时间戳转换为本地时间的struct_time对象。struct_time对象包含9个属性,分别为tm_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(时)、tm_min(分)、tm_sec(秒)、tm_wday(星期几)、tm_yday(一年中的第几天)和tm_isdst(是否为夏令时)。
例如:
import time t = time.time() localtime = time.localtime(t) print(localtime)
运行结果为:
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=8, tm_hour=11, tm_min=55, tm_sec=8, tm_wday=3, tm_yday=189, tm_isdst=0)
2.3 strftime()函数
strftime()函数与datetime模块中的函数用法相同,用于将struct_time对象格式化为字符串。
例如:
import time
t = time.time()
localtime = time.localtime(t)
print(time.strftime("%Y-%m-%d %H:%M:%S", localtime))
运行结果为:
2021-07-08 11:55:08
3. calendar模块
calendar模块是Python中处理日期和时间的另一个模块。它提供了一些函数来获取某个月份的日历、判断某一年是否是闰年等。
3.1 month()函数
month()函数用于获取某个月份的日历。它的语法为:month(year, month, w=0, l=0)。其中,year是年份,month是月份,w是日期之间的间隔字符,l是每行的日期数。
例如:
import calendar c = calendar.month(2021, 7) print(c)
运行结果为:
July 2021
Mo Tu We Th Fr Sa Su
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 31
3.2 isleap()函数
isleap()函数用于判断某一年是否是闰年。它的语法为:isleap(year)。其中,year是年份。
例如:
import calendar print(calendar.isleap(2021)) print(calendar.isleap(2020))
运行结果为:
False True
4. timedelta类
timedelta类用于表示时间差,它可以用于计算两个日期或者时间之间的差值。
例如:
from datetime import datetime, timedelta d1 = datetime(2021, 7, 6) d2 = datetime(2021, 7, 8) delta = d2 - d1 print(delta.days)
运行结果为:
2
5. pytz模块
pytz模块是Python中处理时区的模块。它提供了时区转换和时区信息的支持。
例如:
from datetime import datetime
import pytz
d = datetime(2021, 7, 6, 12, 30, 00)
tz = pytz.timezone('Asia/Shanghai')
d = tz.localize(d)
print(d.astimezone(pytz.utc))
运行结果为:
2021-07-06 04:30:00+00:00
这里,我们先将datetime对象设置为本地时间,然后使用pytz.timezone()函数将时区设置为‘Asia/Shanghai’,最后使用astimezone()函数将时区转换为UTC时区。
