1. Python中日期和时间相关库
Python中常用的日期和时间相关库有:datetime、time、calendar和dateutil等。
其中,datetime是最常被使用的日期时间相关的库。它提供了date、time、datetime、timedelta、tzinfo等类,用于处理日期和时间的各种操作。下面我们来详细介绍一下。
2. datetime模块常用方法
2.1 获取当前时间
我们可以使用datetime库中的now()方法获取当前本地时间。
import datetime
now = datetime.datetime.now()
print(now)
输出结果为:
2021-11-09 14:13:23.236187
2.2 datetime对象转时间戳
我们可以将datetime对象转换成时间戳,即从1970年1月1日起,到当前时间的秒数。
import datetime
now = datetime.datetime.now()
timestamp = int(now.timestamp())
print(timestamp)
输出结果为:
1636473220
2.3 时间戳转datetime对象
我们可以将时间戳转换成datetime对象。
import datetime
timestamp = 1636473220
dt_obj = datetime.datetime.fromtimestamp(timestamp)
print(dt_obj)
输出结果为:
2021-11-09 14:07:00
2.4 格式化输出
我们可以使用strftime()方法来将datetime对象格式化成指定格式的字符串。
以下是常用的格式化字符串,例如:%Y-%m-%d %H:%M:%S 表示年月日时分秒。
import datetime
now = datetime.datetime.now()
print(now.strftime('%Y-%m-%d %H:%M:%S'))
输出结果为:
2021-11-09 14:14:24
2.5 timedelta
timedelta是datetime库中的一个类,可以用于表示时间差,例如相差多少小时、分钟、秒等。我们可以将两个datetime对象相减,得到一个timedelta对象。
import datetime
now = datetime.datetime.now()
future_time = now + datetime.timedelta(hours=1)
time_diff = future_time - now
print(time_diff)
输出结果为:
1:00:00
3. time模块常用方法
3.1 获取当前时间
我们可以使用time模块中的time()方法获取当前本地时间的时间戳。
import time
timestamp = int(time.time())
print(timestamp)
输出结果为:
1636474584
3.2 时间戳转时间元组
我们可以将时间戳转换成时间元组。
import time
timestamp = 1636473220
time_tuple = time.localtime(timestamp)
print(time_tuple)
输出结果为:
time.struct_time(tm_year=2021, tm_mon=11, tm_mday=9, tm_hour=14, tm_min=7, tm_sec=0, tm_wday=1, tm_yday=313, tm_isdst=0)
3.3 时间元组转时间戳
我们可以将时间元组转换成时间戳。
import time
time_tuple = (2021, 11, 9, 14, 7, 0, 1, 313, 0)
timestamp = int(time.mktime(time_tuple))
print(timestamp)
输出结果为:
1636474020
3.4 格式化输出
我们可以使用strftime()方法来将时间元组格式化成指定格式的字符串。
import time
time_tuple = (2021, 11, 9, 14, 7, 0, 1, 313, 0)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(time_str)
输出结果为:
2021-11-09 14:07:00
4. calendar模块常用方法
4.1 获取月历
我们可以使用calendar库中的month()方法获取指定年月的月历。
import calendar
calendar_str = calendar.month(2021, 11)
print(calendar_str)
输出结果为:
November 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
4.2 判断是否为闰年
我们可以使用isleap()方法来判断指定年份是否是闰年。
import calendar
is_leap = calendar.isleap(2020)
print(is_leap)
输出结果为:
True
5. dateutil模块常用方法
5.1 字符串转datetime对象
我们可以使用dateutil库中的parse()方法将字符串转换成datetime对象。
from dateutil.parser import parse
date_str = '2021-11-09 14:15:30'
dt_obj = parse(date_str)
print(dt_obj)
输出结果为:
2021-11-09 14:15:30
5.2 获取指定时区时间
我们可以使用dateutil库中的tz()方法获取指定时区的时间。
from datetime import datetime
from dateutil import tz
format = '%Y-%m-%d %H:%M:%S'
# 获取本地时间转换为+0800时区的时间
local_dt = datetime.strptime('2021-11-09 14:20:30', format)
local_tz = tz.gettz()
east_tz = tz.gettz('Asia/Shanghai')
local_dt = local_dt.replace(tzinfo=local_tz)
east_dt = local_dt.astimezone(east_tz)
print(east_dt.strftime(format))
输出结果为:
2021-11-09 14:20:30
6. 总结
本文介绍了Python中常用的日期和时间相关库,包括datetime、time、calendar和dateutil等,以及它们常用的方法和操作。在实际开发中,深入了解日期和时间操作可以提高效率和代码质量。