全面了解Python中的日期和时间函数
Python 是一种高级编程语言,在程序设计中广泛使用。日期和时间为编程人员提供了可用性和实用性等很多的东西。Python 中已经内置了一些强大的日期和时间函数,其主要目的是处理各种日期和时间的操作。在这篇文章中,我们将探讨这些日期和时间函数的各种用法及其示例。
1. datetime 模块
首先让我们看看 Python 日期和时间函数的主要模块,即 datetime。 datetime 模块是用于处理时间和日期数据的标准模块,它定义了下列类:
1.1 datetime 类
datetime 类旨在处理年、月、日、时、分、秒和微秒等信息。以下是 datetime 类的各种方法:
datetime.monday(): 返回星期一
datetime.time(): 返回 datetime 对象的时间部分。
datetime.date(): 返回 datetime 对象的日期部分。
datetime.today(): 返回当前日期和时间(本地时间)
datetime.now(): 返回当前日期和时间(本地时间)
datetime.utcnow(): 返回当前日期和时间(UTC时间)
datetime.fromtimestamp(timestamp): 根据时间戳创建 datetime 对象。
下面是一些 datetime 使用的示例:
from datetime import datetime
# 创建 datetime 对象
now = datetime.now()
# 返回 datetime 对象中的时间和日期
print("当前时间:", now)
print("日期: ", now.date())
print("时间: ", now.time())
# 格式化当前时间
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# 返回星期一
print(now.strftime("%A"))
# 根据时间戳创建 datetime 对象
timestamp = 1592660199
dt_object = datetime.fromtimestamp(timestamp)
print("datetime 对象:", dt_object)
输出结果如下:
当前时间: 2021-09-17 14:55:25.970426
日期: 2021-09-17
时间: 14:55:25.970426
2021-09-17 14:55:25
Friday
datetime 对象: 2020-06-20 22:56:39
1.2 timedelta 类
timedelta 类是 datetime 模块中的一个小型类,用于计算日期和时间之间的差异。 timedelta 可以添加和减少时间,以及计算时间间隔和时间点之间的差异。
以下是 timedelta 类的各种方法:
timedelta.days: 返回天数。
timedelta.seconds: 返回秒数。
timedelta.microseconds: 返回毫秒数。
timedelta.total_seconds(): 返回一个拥有毫秒数的整数。
下面是一些 timedelta 的示例:
from datetime import datetime, timedelta
dt1 = datetime(2021, 10, 23)
dt2 = datetime(2021, 10, 25)
td = dt2 - dt1
print("天数差异:", td.days)
print("秒差异:", td.seconds)
print("微秒差异:", td.microseconds)
print("总秒数差异:", td.total_seconds())
输出结果如下:
天数差异: 2
秒差异: 0
微秒差异: 0
总秒数差异: 172800.0
2. time 模块
Python 的 time 模块包含了许多可以处理时间的函数。这些函数可以检索当前时间和日期、将时间转换为各种格式、记录函数等等。
以下是 time 类的各种方法:
time.time(): 返回当前时间的时间戳。
time.sleep(s): 暂停 s 秒钟。
time.strftime(format[, t]): 将 time 对象格式化为时间字符串。
time.strptime(string[, format]): 将时间字符串解析为 time 对象。
time.gmtime([secs]): 将 secs 转换为 UTC 时间。
time.localtime([secs]): 将 secs 转换为本地时间。
以下是 time 模块的一些示例:
import time
# 返回当前时间的时间戳
secs = time.time()
print("当前时间戳:", secs)
# 暂停 2 秒
time.sleep(2)
print("暂停 2 秒钟")
# 时间格式化
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("当前时间:", now)
# 将时间字符串解析为 time 对象
timestr = "2021-09-17 22:22:22"
t = time.strptime(timestr, "%Y-%m-%d %H:%M:%S")
print("time 对象:", t)
输出结果如下:
当前时间戳: 1631851938.3136876
暂停 2 秒钟
当前时间: 2021-09-17 15:25:40
time 对象: time.struct_time(tm_year=2021, tm_mon=9, tm_mday=17, tm_hour=22, tm_min=22, tm_sec=22, tm_wday=4, tm_yday=260, tm_isdst=-1)
3. calendar 模块
Python 的 calendar 模块可以帮助我们执行日历相关的操作。它可以生成各种格式的日历,包括年、月、周和一些美学样式。
以下是 calendar 模块的各种方法:
calendar.month(year, month): 返回指定月份的日历。
calendar.calendar(year): 返回指定年份的完整年历。
calendar.weekday(year, month, day): 返回指定日期的星期数(0-6,星期一到星期日)。
calendar.isleap(year): 如果给定 year 是闰年,则返回 True,否则返回 False。
以下是 calendar 模块的一些示例:
import calendar
# 返回指定月份的日历
print(calendar.month(2021, 9))
# 返回指定年份的完整年历
print(calendar.calendar(2021))
# 返回指定日期的星期数
print(calendar.weekday(2021, 9, 17))
# 判断 2024 是否是闰年
print(calendar.isleap(2024))
输出结果如下:
September 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
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
