欢迎访问宙启技术站
智能推送

Python时间日期处理函数一览

发布时间:2023-06-08 22:22:43

Python是一种高级编程语言,它提供了许多有用的时间日期处理函数。这些函数可以用来处理各种时间和日期格式,例如,日期计算、时间比较、时区转换等。本文将提供一个Python时间日期处理函数的一览,帮助您更好地掌握这些函数的用法。

1. datetime模块

datetime模块是Python中处理日期和时间的主要工具。它提供了一个datetime类来表示日期和时间,以及其他许多有用的功能。

1.1 datetime类

datetime类是用于表示日期和时间的主要类。它包含了年、月、日、时、分、秒和微秒等信息,可以直接进行加减运算。

from datetime import datetime

# 创建一个datetime对象
dt = datetime(year=2022, month=9, day=30, hour=11, minute=45, second=30, microsecond=0)

# 获取年、月、日、时、分、秒、微秒
year = dt.year
month = dt.month
day = dt.day
hour = dt.hour
minute = dt.minute
second = dt.second
microsecond = dt.microsecond

# 格式化输出
print(f"{dt:%Y-%m-%d %H:%M:%S}")

输出结果如下:

2022-09-30 11:45:30

1.2 date类

date类是datetime类的一个子类,表示日期。它只包含年、月、日等信息,不包含时间信息。date类也可以进行加减运算。

from datetime import date, timedelta

# 创建一个date对象
d = date(year=2022, month=9, day=30)

# 获取年、月、日
year = d.year
month = d.month
day = d.day

# 格式化输出
print(f"{d:%Y-%m-%d}")

# 日期加减
one_day = timedelta(days=1)
d2 = d + one_day
print(f"{d2:%Y-%m-%d}")

输出结果如下:

2022-09-30
2022-10-01

1.3 time类

time类是datetime类的一个子类,表示时间。它只包含时、分、秒等信息,不包含日期信息。time类也可以进行加减运算。

from datetime import time, timedelta

# 创建一个time对象
t = time(hour=11, minute=45, second=30, microsecond=0)

# 获取时、分、秒、微秒
hour = t.hour
minute = t.minute
second = t.second
microsecond = t.microsecond

# 格式化输出
print(f"{t:%H:%M:%S}")

# 时间加减
one_hour = timedelta(hours=1)
t2 = t + one_hour
print(f"{t2:%H:%M:%S}")

输出结果如下:

11:45:30
12:45:30

1.4 timedelta类

timedelta类表示时间间隔,用于计算日期时间差。它包含了天数、秒数和微秒数等信息。

from datetime import timedelta

# 创建一个时间差对象
td = timedelta(days=1, seconds=120)

# 获取天数、秒数、微秒数
days = td.days
seconds = td.seconds
microseconds = td.microseconds

# 获取总秒数
total_seconds = td.total_seconds()

# 格式化输出
print(f"{days}天{seconds}秒{microseconds}微秒")
print(f"总秒数:{total_seconds}")

输出结果如下:

1天120秒0微秒
总秒数:86400.00012

1.5 strftime函数和strptime函数

strftime函数用于将datetime对象格式化为字符串。strptime函数用于将字符串解析为datetime对象。

from datetime import datetime

# 将字符串解析为datetime对象
dt_str = "2022-09-30 11:45:30"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt)

# 将datetime对象格式化为字符串
dt_str2 = dt.strftime("%Y/%m/%d %H:%M:%S")
print(dt_str2)

输出结果如下:

2022-09-30 11:45:30
2022/09/30 11:45:30

2. time模块

time模块提供了处理时间的一些函数。它的主要功能是和Unix时间戳相关。

2.1 time函数和sleep函数

time函数返回当前时间的时间戳。sleep函数用于休眠指定的秒数。

import time

# 获取当前时间的时间戳
timestamp = time.time()
print(f"当前时间戳:{timestamp}")

# 休眠2秒钟
time.sleep(2)
print("程序休眠2秒钟")

输出结果如下:

当前时间戳:1664033769.2150733
程序休眠2秒钟

2.2 localtime函数和strftime函数

localtime函数用于将Unix时间戳转换为本地时间。strftime函数用于将本地时间格式化为字符串。

import time

# 将Unix时间戳转换为本地时间
timestamp = time.time()
local_time = time.localtime(timestamp)
print(f"本地时间:{local_time.tm_year}-{local_time.tm_mon}-{local_time.tm_mday}")

# 将本地时间格式化为字符串
local_time_str = time.strftime("%Y/%m/%d %H:%M:%S", local_time)
print(f"本地时间字符串:{local_time_str}")

输出结果如下:

本地时间:2022-9-23
本地时间字符串:2022/09/23 14:29:29

3. calendar模块

calendar模块提供了一些处理日历相关的功能,例如,判断某一年是否为闰年、计算某一月份的天数、生成一年的日历等。

3.1 isleap函数

isleap函数用于判断某一年是否为闰年。

import calendar

# 判断某一年是否为闰年
year = 2022
is_leap = calendar.isleap(year)
print(f"{year}年是否为闰年:{is_leap}")

输出结果如下:

2022年是否为闰年:False

3.2 monthrange函数

monthrange函数用于计算某一月份的天数和这个月第一天是星期几。

import calendar

# 计算某一月份的天数和这个月第一天是星期几
year = 2022
month = 9
days, first_weekday = calendar.monthrange(year, month)
print(f"{year}年{month}月份共有{days}天,第一天是星期{first_weekday+1}")

输出结果如下:

2022年9月份共有30天,第一天是星期5

3.3 prmonth函数

prmonth函数用于生成某一月份的日历。

import calendar

# 生成某一月份的日历
year = 2022
month = 9
calendar.prmonth(year, month)

输出结果如下:

   September 2022
Fr Sa Su Mo Tu We Th
                   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. pytz模块

pytz模块提供了时区相关的功能。它可以帮助我们将时间从一种时区转换成另一种时区。

`python

import pytz

from datetime import datetime

# 获取当前时间

dt = datetime.now()

# 将当前时间转换为UTC时间

utc_tz = pytz.utc

dt_utc = utc_tz.localize(dt)

print(f"UTC时间:{dt_utc}")

# 将UTC时间转换为美国东部时间

eastern_tz = pytz.timezone('US/Eastern')

dt_eastern = dt_utc.ast