Python中日期时间相关模块

发布时间:2024年01月16日

1.datetime模块

在Python中,datetime 模块提供了处理日期和时间的类和函数。主要的类包括 datetime、date、time、timedelta

1.1 date

date 类表示日期,只包含年、月、日的信息,不包含具体时间。
使用 date(year, month, day) 构造函数创建 date 对象。

# # 使用数字构造日期
# # date0 = date(year=2001, month=1, day=10)
# # 获取今天日期
# date0 = date.today()
#
# print(type(date0))
# #  取得日期中每一个部分
# print(date0.year, date0.month, date0.day, date0.weekday())
# # %y 两位年  %Y 四位年份  %m 两位月  %d两位日
# print(date0.strftime("%Y-%m-%d"))

1.2 time

time 类表示时间,包含时、分、秒和微秒。
使用 time(hour=0, minute=0, second=0, microsecond=0) 构造函数创建 time 对象

# 使用数字构造时间
time0 = time(hour=17, minute=1, second=30)
print(type(time0))
print(time0.hour, time0.minute, time0.second)
print(time0.strftime("%H:%M:%S"))

1.3 datetime

datetime 类是处理日期和时间的主要类,它包含了年、月、日、时、分、秒和微秒等信息。
创建 datetime 对象的一般方式是使用 datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0) 构造函数。

# 使用数字
datetime0 = datetime(year=2001, month=5, day=25, hour=5, minute=29, second=11)
# 现在时间
datetime01 = datetime.now()
 print(type(datetime0))
 print(datetime0.year, datetime0.month, datetime0.day, datetime0.hour, datetime0.minute, datetime0.second)
 print(datetime0.strftime("%Y-%m-%d %H:%M:%S"))

1.4 timedelta

timedelta 表示两个日期或时间之间的时间差。
可以通过 datetime1 - datetime2 得到一个 timedelta 对象,或使用 timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) 构造函数创建。

from datetime import timedelta
time_difference = timedelta(days=5, hours=3, minutes=30)
print(time_difference)

常用方法

strftime(format):将 datetime 对象格式化为字符串。
strptime(date_string, format):将字符串解析为 datetime 对象。
now():返回当前日期和时间。
today():返回当前日期,时间部分设为零。

from datetime import datetime

current_datetime = datetime.now()
formatted_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)

2.time模块

在 Python 中,time 模块提供了与时间相关的函数和类。这个模块主要用于执行与时间相关的操作,例如测量代码执行时间、获取当前时间等。以下是 time 模块的一些关键概念和常用函数

2.1time() 函数

time() 函数返回当前时间的时间戳(从 epoch 到现在的秒数)。

import time
current_time = time.time()
print(current_time)

2.2 sleep(seconds) 函数

sleep() 函数让程序休眠指定的秒数,用于在程序执行时进行暂停。

import time
print("Start")
time.sleep(3)
print("End after 3 seconds")
#输出结果
Start
End after 3 seconds

2.3ctime(seconds) 函数

ctime() 函数将给定的时间戳转换为可读的字符串格式

import time
timestamp = time.time()
readable_time = time.ctime(timestamp)
print(readable_time)
# 结果
Thu Jan 11 21:36:18 2024

2.4 gmtime(seconds) 和 localtime(seconds) 函数

gmtime() 函数将给定的时间戳转换为 UTC 时间的 struct_time 对象。
localtime() 函数将给定的时间戳转换为本地时间的 struct_time 对象。

import time

timestamp = time.time()
utc_time = time.gmtime(timestamp)
local_time = time.localtime(timestamp)

print("UTC Time:", utc_time)
print("Local Time:", local_time)
# 输出结果
UTC Time: time.struct_time(tm_year=2024, tm_mon=1, tm_mday=11, tm_hour=13, tm_min=37, tm_sec=32, tm_wday=3, tm_yday=11, tm_isdst=0)
Local Time: time.struct_time(tm_year=2024, tm_mon=1, tm_mday=11, tm_hour=21, tm_min=37, tm_sec=32, tm_wday=3, tm_yday=11, tm_isdst=0)

2.5strftime(format, struct_time) 和 strptime(date_string, format) 函数

strftime() 函数将 struct_time 对象格式化为字符串。
strptime() 函数将字符串解析为 struct_time 对象。

import time

current_time = time.localtime()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", current_time)

print("Formatted Time:", formatted_time)
# 结果为
Formatted Time: 2024-01-11 21:39:50

3 calendar 模块

calendar 模块提供了处理日历相关操作的函数。这个模块允许你获取一年或一个月的日历,以及执行一些日历相关的计算。以下是 calendar 模块的一些关键概念和常用函数:

3.1 calendar(year, w=2, l=1, c=6) 函数

calendar() 函数返回一个多行字符串,表示给定年份的日历。w 控制日期的宽度,l 控制每周的行数,c 控制每个月之间的距离。

import calendar

cal = calendar.calendar(2022)
print(cal)
# 结果是
                                  2022

      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          1  2  3  4  5  6          1  2  3  4  5  6
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       7  8  9 10 11 12 13
10 11 12 13 14 15 16      14 15 16 17 18 19 20      14 15 16 17 18 19 20
17 18 19 20 21 22 23      21 22 23 24 25 26 27      21 22 23 24 25 26 27
24 25 26 27 28 29 30      28                        28 29 30 31
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                         1             1  2  3  4  5
 4  5  6  7  8  9 10       2  3  4  5  6  7  8       6  7  8  9 10 11 12
11 12 13 14 15 16 17       9 10 11 12 13 14 15      13 14 15 16 17 18 19
18 19 20 21 22 23 24      16 17 18 19 20 21 22      20 21 22 23 24 25 26
25 26 27 28 29 30         23 24 25 26 27 28 29      27 28 29 30
                          30 31

        July                     August                  September
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
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       5  6  7  8  9 10 11
11 12 13 14 15 16 17      15 16 17 18 19 20 21      12 13 14 15 16 17 18
18 19 20 21 22 23 24      22 23 24 25 26 27 28      19 20 21 22 23 24 25
25 26 27 28 29 30 31      29 30 31                  26 27 28 29 30

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                1  2  3  4
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       5  6  7  8  9 10 11
10 11 12 13 14 15 16      14 15 16 17 18 19 20      12 13 14 15 16 17 18
17 18 19 20 21 22 23      21 22 23 24 25 26 27      19 20 21 22 23 24 25
24 25 26 27 28 29 30      28 29 30                  26 27 28 29 30 31
31

3.2 month(year, month, w=2, l=1) 函数

month() 函数返回一个多行字符串,表示给定年份和月份的日历。

import calendar

cal = calendar.month(2022, 1)
print(cal)
#结果是:
    January 2022
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.3 isleap(year) 函数

isleap() 函数检查给定的年份是否为闰年,如果是则返回 True,否则返回 False

import calendar

is_leap = calendar.isleap(2024)
print(is_leap)
#结果是
True

3.4 weekday(year, month, day) 函数

weekday() 函数返回给定日期的星期几(0 表示星期一,6 表示星期日)

import calendar

day_of_week = calendar.weekday(2024, 1, 11)
print(day_of_week)
#结果是
1

3.5 monthrange(year, month) 函数

monthrange() 函数返回给定年份和月份的第一天是星期几和该月的总天数。

import calendar

first_day, total_days = calendar.monthrange(2024, 1)
print("First day of the month:", first_day)
print("Total days in the month:", total_days)
#结果是
First day of the month: 0
Total days in the month: 31

3.6prmonth(year, month, w=0, l=0) 函数

prmonth() 函数在控制台打印给定年份和月份的日历。

import calendar

calendar.prmonth(2022, 1)
#结果是:
    January 2022
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

今天到这就结束了哈,明天见。

文章来源:https://blog.csdn.net/qq_49615704/article/details/135539348
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。