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

时间函数:使用Python时间函数的技巧

发布时间:2023-06-25 06:34:28

Python里有许多强大的时间函数和模块,这些函数和模块都可以帮助开发者更好、更有效地处理时间。下面是介绍一些使用Python时间函数的技巧:

1. 当前时间

获取当前时间可以使用time模块中的time()函数。该函数返回自1970年1月1日UTC到当前时间的秒数。

例如:

import time
now = time.time()
print(now)   # 1588937646.7172031

如果我们想将这个数转换成易于阅读的日期格式,我们可以使用datetime模块中的datetime.fromtimestamp()函数。

例如:

import datetime
now = datetime.datetime.fromtimestamp(time.time())
print(now)   # 2020-05-08 14:07:26.717203

这个函数返回一个datetime对象,它包含了当前的日期和时间信息。

2. 时间戳转日期

通过时间戳(即从1970年1月1日UTC起的秒数)获得相应的日期和时间,可以使用datetime模块中的datetime.fromtimestamp()函数。

例如:

import datetime
ts = 1588937646.7172031
date = datetime.datetime.fromtimestamp(ts)
print(date) # 2020-05-08 14:07:26.717203

也可以使用time模块中的ctime()函数,将时间戳转换为易于阅读的字符串。

例如:

import time
ts = 1588937646.7172031
date = time.ctime(ts)
print(date) # Fri May  8 14:07:26 2020

3. 日期转时间戳

如果想将一个日期转换为时间戳,可以使用datetime模块的datetime.timestamp()方法。

例如:

import datetime
date = datetime.datetime(2020,5,8,14,7,26) # 创建一个datetime对象
ts = date.timestamp() # 将datetime对象转换为时间戳
print(ts) # 1588938446.0

4. 日期计算

可以使用datetime模块中的timedelta类进行日期计算。timedelta类表示两个日期之间的时间差,可以用来增减日期。

例如:

import datetime
now = datetime.datetime.now()
five_days_ago = now - datetime.timedelta(days=5) # 5天前的日期
seven_days_later = now + datetime.timedelta(days=7) # 7天后的日期

除了days参数外,timedelta还有许多其他的参数,如seconds、microseconds、milliseconds、minutes、hours、weeks,您可以根据需要进行更精细的日期计算。

5. 获取当前年月日

使用datetime模块可以很容易地获取当前年月日。

例如:

import datetime
now = datetime.datetime.now()
year = now.year # 当前年份
month = now.month # 当前月份
day = now.day # 当前日期

6. 判断闰年

可以使用calendar模块中的isleap()函数来判断是否为闰年。

例如:

import calendar
year = 2020
is_leap_year = calendar.isleap(year)
print(is_leap_year) # True

7. 时间格式化

可以使用strftime()函数将日期格式化为字符串。该函数接受一个格式化字符串作为参数,根据这个字符串将日期格式化为所需的格式。

例如:

import datetime
now = datetime.datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 2020-05-08 14:35:24

在格式化字符串中可以使用一些格式化代码,如:

- %Y 表示年份(4位数字);

- %m 表示月份(有前导零);

- %d 表示日期(有前导零);

- %H 表示小时(24小时制,有前导零);

- %M 表示分钟(有前导零);

- %S 表示秒钟(有前导零)。

还可以使用fmt格式进行字符串时间的转化。只需在指定时间格式化的地方使用%%,然后在字符串后面用一个元素:datetime.datetime.strptime(dt, fmt),以指定预期的时间格式。

例如:

dt = '08-May-2020'
fmt = '%d-%b-%Y'
date = datetime.datetime.strptime(dt, fmt)
print(date) # 2020-05-08 00:00:00

总结:

Python拥有丰富的时间函数和模块,使我们能够在开发过程中更有效地处理时间。希望上述几个技巧能帮助您更好地处理时间、优化代码、提高效率。