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

Python中的时间函数:datetime和time

发布时间:2023-06-23 13:31:38

Python中有两个主要的模块来处理时间和日期,即datetime和time。这两个模块都可以用来处理时间和日期相关的计算和操作。在本文中,我们将会介绍Python中的datetime和time模块以及它们的用法。

1. datetime模块

a. datetime模块的引入

datetime模块是Python中用于处理日期和时间的库。可以通过以下方式导入模块:

import datetime

b. datetime类

datetime模块中最常用的类是datetime类,它可以表示日期和时间的组合。它包含以下属性:

- year:年份

- month:月份

- day:日

- hour:小时

- minute:分

- second:秒

- microsecond:微秒

使用datetime类可以创建表示特定日期和时间的对象。例如,下面的代码将创建表示当前日期和时间的datetime对象:

import datetime

now = datetime.datetime.now()
print(now)

上述代码输出结果为:

2021-12-20 21:47:02.011304

其中,now()方法用于获取当前日期和时间,返回一个datetime对象。

除此之外,还可以使用datetime类的构造函数来创建特定日期和时间的datetime对象。例如,下面的代码将创建表示2022年1月1日0时0分0秒的datetime对象:

import datetime

date = datetime.datetime(2022, 1, 1, 0, 0, 0)
print(date)

上述代码输出结果为:

2022-01-01 00:00:00

c. datetime对象的操作

在datetime模块中,可以对datetime对象进行各种操作,包括日期和时间的加减、比较等。

在datetime对象上执行加法或减法操作会自动计算日期和时间。例如,下面的代码将计算10天前的日期:

import datetime

now = datetime.datetime.now()
ten_days_ago = now - datetime.timedelta(days=10)
print(ten_days_ago)

上述代码输出结果为:

2021-12-10 21:47:02.982798

此外,在比较datetime对象时,可以使用比较运算符进行比较,例如:

import datetime

now = datetime.datetime.now()
other_date = datetime.datetime(2022, 1, 1, 0, 0, 0)

if now > other_date:
    print("当前日期晚于其他日期")
else:
    print("当前日期早于其他日期")

d. datetime对象的格式化输出

在将datetime对象输出到字符串时,可以使用strftime()方法对其进行格式化。该方法接受一个格式字符串作为参数,并返回一个格式化后的字符串。例如,下面的代码将以格式化后的方式输出当前日期和时间:

import datetime

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

上述代码输出结果为:

2021-12-20 21:47:02

在上述代码中,"%Y-%m-%d %H:%M:%S"是一个格式化字符串,表示年份、月份、日期、小时、分钟和秒。可以根据需要自由组合生成不同的格式。

2. time模块

a. time模块的引入

time模块是Python中处理时间的另一个模块。可以通过以下方式导入模块:

import time

b. time模块的基础函数

time模块提供了许多与时间相关的基础函数。其中,最常用的三个函数是:

- time():返回当前时间的时间戳,即自1970年1月1日0时0分0秒以来的秒数

- sleep():让程序在指定的时间内暂停执行

- localtime():返回当前的本地时间,以struct_time(时间元组)的形式返回

例如,下面的代码展示了这三个函数的用法:

import time

now = time.time()   # 返回当前时间
time.sleep(2)   # 程序暂停2秒
localtime = time.localtime()   # 返回本地时间
print(now)
print(localtime)

上述代码输出结果为:

1640000023.5699894
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=20, tm_hour=22, tm_min=13, tm_sec=43, tm_wday=0, tm_yday=354, tm_isdst=0)

在上述代码中,time()函数返回的是当前时间的时间戳,而localtime()函数返回的是本地时间的struct_time形式。

c. time模块的高级函数

time模块还提供了更多的函数来处理时间。例如,asctime()函数可以将struct_time格式的时间转换为字符串表示,而strftime()函数则可以将时间格式化为指定的字符串形式。

例如,下面的代码将struct_time格式的时间转换为字符串表示:

import time

localtime = time.localtime()
print(time.asctime(localtime))

上述代码输出结果为:

Mon Dec 20 22:22:51 2021

而下面的代码则将时间格式化为指定的字符串形式:

import time

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

上述代码输出结果为:

2021-12-20 22:26:01

在上述代码中,"%Y-%m-%d %H:%M:%S"是一个格式化字符串,用于表示年份、月份、日期、小时、分钟和秒。

总结:

Python中的datetime和time模块提供了强大的时间处理功能。datetime模块主要用于处理日期和时间的组合,而time模块则提供了更多的底层函数和高级函数来处理时间。通过强大的时间处理功能,我们可以轻松地计算、处理和格式化时间,并在应用中轻松进行时间相关的操作。