Python日期和时间函数简明教程
Python是一种流行的编程语言,它拥有许多日期和时间函数。在这篇文章中,我们将介绍Python中一些常用的日期和时间函数,并演示如何使用它们。
1. datetime模块
Python中处理日期和时间的主要模块是datetime。在这个模块中,主要有以下几个类:
- datetime.date:表示日期
- datetime.time:表示时间
- datetime.datetime:表示日期和时间
- datetime.timedelta:表示时间差
让我们来看一些常见的操作:
a) 获取当前日期和时间
使用datetime模块中的now()函数可以获取当前日期和时间。例如:
import datetime
now = datetime.datetime.now()
print('当前日期和时间:', now)
输出内容:
当前日期和时间: 2021-04-23 22:12:51.790584
b) 获取日期或时间的某个部分
要获取日期或时间的某个部分,比如年、月、日等,可以使用相应的属性。例如:
import datetime
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print('当前时间:', now)
print('年:', year)
print('月:', month)
print('日:', day)
print('小时:', hour)
print('分钟:', minute)
print('秒:', second)
输出内容:
当前时间: 2021-04-23 22:17:54.231945 年: 2021 月: 4 日: 23 小时: 22 分钟: 17 秒: 54
c) 格式化日期和时间字符串
要将日期和时间转换为指定格式的字符串,可以使用strftime()函数。例如:
import datetime
now = datetime.datetime.now()
str_now = now.strftime('%Y-%m-%d %H:%M:%S')
print('当前时间:', now)
print('当前时间字符串:', str_now)
输出内容:
当前时间: 2021-04-23 22:22:19.944129 当前时间字符串: 2021-04-23 22:22:19
这里的'%Y-%m-%d %H:%M:%S'是一个格式化字符串,其中%Y代表年份(4位)、%m代表月份、%d代表日期、%H代表小时、%M代表分钟、%S代表秒。
d) 解析字符串为日期和时间
如果要将字符串解析为日期和时间,可以使用strptime()函数。例如:
import datetime
str_date = '2021-04-23 22:25:30'
date = datetime.datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S')
print('字符串:', str_date)
print('日期和时间:', date)
输出内容:
字符串: 2021-04-23 22:25:30 日期和时间: 2021-04-23 22:25:30
2. time模块
time模块提供了一些处理时间的函数,主要包括以下几个:
- time(): 返回当前时间的时间戳(1970年1月1日至今的秒数)
- sleep(): 延时等待,单位为秒
- localtime(): 将一个时间戳转换为当前时区的struct_time
- strftime(): 将struct_time对象转换为指定格式的字符串
让我们来看一些示例:
a) 获取当前时间戳
使用time模块中的time()函数可以获取当前时间戳。例如:
import time
timestamp = time.time()
print('当前时间戳:', timestamp)
输出内容:
当前时间戳: 1619194075.561175
b) 延时等待
要等待一段时间后再继续执行,可以使用sleep()函数。例如:
import time
print('开始等待……')
time.sleep(3) # 等待3秒
print('等待结束。')
输出内容:
开始等待…… 等待结束。
c) 时间戳转换为struct_time
要将时间戳转换为struct_time,可以使用localtime()函数。例如:
import time
timestamp = time.time()
local_time = time.localtime(timestamp)
print('时间戳:', timestamp)
print('本地时间:', local_time)
输出内容:
时间戳: 1619195603.04259 本地时间: time.struct_time(tm_year=2021, tm_mon=4, tm_mday=23, tm_hour=22, tm_min=46, tm_sec=43, tm_wday=4, tm_yday=113, tm_isdst=0)
d) struct_time转换为字符串
要将struct_time转换为字符串,可以使用strftime()函数。例如:
import time
local_time = time.localtime()
str_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
print('本地时间:', local_time)
print('时间字符串:', str_time)
输出内容:
本地时间: time.struct_time(tm_year=2021, tm_mon=4, tm_mday=23, tm_hour=22, tm_min=50, tm_sec=16, tm_wday=4, tm_yday=113, tm_isdst=0) 时间字符串: 2021-04-23 22:50:16
3. calendar模块
calendar模块用于处理日期和时间,主要包括以下几个函数:
- calendar.month(): 返回指定年份和月份的日历
- calendar.calendar(): 返回指定年份的日历
- calendar.timegm(): 将一个struct_time转换为时间戳
- calendar.isleap(): 判断指定年份是否为闰年
让我们来看一些示例:
a) 输出指定年份和月份的日历
使用calendar模块中的month()函数可以输出指定年份和月份的日历。例如,
import calendar
calendar.setfirstweekday(calendar.SUNDAY) # 设置日历的 天为周日
year = 2021
month = 4
month_calendar = calendar.month(year, month)
print(f'{year}年{month}月的日历:
{month_calendar}')
输出内容:
2021年4月的日历:
April 2021
Su Mo Tu We Th Fr Sa
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
b) 输出指定年份的日历
使用calendar模块中的calendar()函数可以输出指定年份的日历。例如:
import calendar
calendar.setfirstweekday(calendar.SUNDAY) # 设置日历的 天为周日
year = 2021
year_calendar = calendar.calendar(year)
print(f'{year}年的日历:
{year_calendar}')
输出内容:
`
2021年的日历:
2021
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 1 2 3 4 5 6 7 1 2 3 4 5 6
3 4 5 6 7 8 9 8 9 10 11 12 13 14 7 8 9 10 11 12 13
10 11 12 13 14 15 16 15 16 17 18 19 20 21 14 15 16 17 18 19 20
17 18 19 20 21 22 23 22 23 24 25 26 27 28 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th
