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

Python日期和时间函数,轻松处理时间数据

发布时间:2023-06-25 21:15:05

在Python中,有一些强大且方便的日期和时间函数,可以帮助我们轻松处理时间数据。在这篇文章中,我们将介绍一些常用的日期和时间函数及其用法。

1. datetime模块

datetime是Python中处理日期和时间的标准模块。它提供了一些类和函数来处理日期和时间。我们可以使用datetime类来创建日期和时间对象,也可以将日期和时间转换为字符串。

1.1 datetime类

datetime类是Python中处理日期和时间的核心类。它有5个部分:年、月、日、时、分、秒和微秒。我们可以使用datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)来创建一个datetime对象。

例如:

from datetime import datetime

d = datetime(2021, 7, 6, 12, 30, 00)

print(d)

运行结果为:

2021-07-06 12:30:00

1.2 strftime()函数

strftime()函数用于将日期和时间格式化为字符串。它的语法为:strftime(format)。其中,format是一个字符串,它包含一些特定格式的占位符,如%Y、%m、%d等。

例如:

from datetime import datetime

d = datetime(2021, 7, 6, 12, 30, 00)

print(d.strftime("%Y-%m-%d %H:%M:%S"))

运行结果为:

2021-07-06 12:30:00

1.3 strptime()函数

strptime()函数用于将字符串解析为日期和时间对象。它的语法为:strptime(string, format)。其中,string是要解析的字符串,format是与字符串对应的日期和时间格式。

例如:

from datetime import datetime

d = datetime.strptime("2021-07-06 12:30:00", "%Y-%m-%d %H:%M:%S")

print(d)

运行结果为:

2021-07-06 12:30:00

2. time模块

time模块是Python中处理时间的另一个重要模块。它包含了一些函数,可以让我们获取当前时间、处理时间戳等。

2.1 time()函数

time()函数返回当前时间的时间戳,它表示从1970年1月1日00:00:00以来的秒数。

例如:

import time

t = time.time()

print(t)

运行结果为:

1625701556.5705495

2.2 localtime()函数

localtime()函数将时间戳转换为本地时间的struct_time对象。struct_time对象包含9个属性,分别为tm_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(时)、tm_min(分)、tm_sec(秒)、tm_wday(星期几)、tm_yday(一年中的第几天)和tm_isdst(是否为夏令时)。

例如:

import time

t = time.time()

localtime = time.localtime(t)

print(localtime)

运行结果为:

time.struct_time(tm_year=2021, tm_mon=7, tm_mday=8, tm_hour=11, tm_min=55, tm_sec=8, tm_wday=3, tm_yday=189, tm_isdst=0)

2.3 strftime()函数

strftime()函数与datetime模块中的函数用法相同,用于将struct_time对象格式化为字符串。

例如:

import time

t = time.time()

localtime = time.localtime(t)

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

运行结果为:

2021-07-08 11:55:08

3. calendar模块

calendar模块是Python中处理日期和时间的另一个模块。它提供了一些函数来获取某个月份的日历、判断某一年是否是闰年等。

3.1 month()函数

month()函数用于获取某个月份的日历。它的语法为:month(year, month, w=0, l=0)。其中,year是年份,month是月份,w是日期之间的间隔字符,l是每行的日期数。

例如:

import calendar

c = calendar.month(2021, 7)

print(c)

运行结果为:

     July 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 31

3.2 isleap()函数

isleap()函数用于判断某一年是否是闰年。它的语法为:isleap(year)。其中,year是年份。

例如:

import calendar

print(calendar.isleap(2021))
print(calendar.isleap(2020))

运行结果为:

False
True

4. timedelta类

timedelta类用于表示时间差,它可以用于计算两个日期或者时间之间的差值。

例如:

from datetime import datetime, timedelta

d1 = datetime(2021, 7, 6)
d2 = datetime(2021, 7, 8)

delta = d2 - d1

print(delta.days)

运行结果为:

2

5. pytz模块

pytz模块是Python中处理时区的模块。它提供了时区转换和时区信息的支持。

例如:

from datetime import datetime
import pytz

d = datetime(2021, 7, 6, 12, 30, 00)
tz = pytz.timezone('Asia/Shanghai')
d = tz.localize(d)

print(d.astimezone(pytz.utc))

运行结果为:

2021-07-06 04:30:00+00:00

这里,我们先将datetime对象设置为本地时间,然后使用pytz.timezone()函数将时区设置为‘Asia/Shanghai’,最后使用astimezone()函数将时区转换为UTC时区。