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

Python中的时间处理:十个常用时间函数,包括日期格式化、时间戳转换等。

发布时间:2023-06-05 09:55:48

Python是一种强大的编程语言,在日期和时间处理方面也提供了众多的功能和库。本文将介绍Python中的十个常用时间函数,包括日期格式化、时间戳转换等,帮助读者处理各种时间操作。

1. datetime模块

datetime模块是Python中处理日期和时间的核心模块。它提供了表示时间的类和函数,可用于处理日期、时间、时间段等相关操作。以下是一些常用的函数:

1)datetime.datetime.now()

该函数返回当前日期和时间。使用该函数需要导入datetime模块。

import datetime

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

输出:

>>> 2021-12-31 23:59:59.999999

2)datetime.date.today()

该函数返回当天的日期。使用该函数需要导入datetime模块。

import datetime

today = datetime.date.today()
print(today)

输出:

>>> 2021-12-31

3)datetime.timedelta

该函数用于处理时间间隔。以下是一些示例:

import datetime

# 计算两个日期之间的时间差
d1 = datetime.date(2021, 1, 1)
d2 = datetime.date(2022, 1, 1)
delta = d2 - d1
print(delta)

# 增加或减少时间
delta = datetime.timedelta(days=1, hours=2, minutes=30)
print(now + delta)
print(now - delta)

输出:

>>> 365 days, 0:00:00
>>> 2022-01-01 01:30:00
>>> 2021-12-30 21:29:59.999999

2. time模块

time模块提供了与时间相关的函数和类。以下是一些常用函数:

1)time.time()

该函数返回当前时间的时间戳,即自1970年1月1日以来经过的时间(单位为秒)。

import time

timestamp = time.time()
print(timestamp)

输出:

>>> 1641035599.9999998

2)time.localtime()

该函数返回本地时间的struct_time对象。

import time

localtime = time.localtime()
print(localtime)

输出:

>>> time.struct_time(tm_year=2021, tm_mon=12, tm_mday=31, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=4, tm_yday=365, tm_isdst=0)

3)time.strftime()

该函数将时间格式化为指定的字符串。

import time

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

输出:

>>> 2021-12-31 23:59:59

3. calendar模块

calendar模块提供了一些函数,可用于处理与日期和时间有关的操作。以下是一些常用函数:

1)calendar.monthrange(year, month)

该函数返回给定年月的日历的 天和该月的总天数。

import calendar

year = 2021
month = 12
first_day, total_days = calendar.monthrange(year, month)
print(first_day, total_days)

输出:

>>> 4 31

2)calendar.weekday(year, month, day)

该函数返回给定日期(年、月、日)的星期几(0为星期一,6为星期日)。

import calendar

date = (2021, 12, 31)
weekday = calendar.weekday(*date)
print(weekday)

输出:

>>> 4

4. timeit模块

timeit模块用于评估一段代码的运行时间。以下是一些示例:

import timeit

# 测试1:用for循环遍历一个列表
setup = "lst = list(range(100))"
stmt = "for i in lst: pass"
t = timeit.timeit(stmt, setup=setup)
print(t)

# 测试2:使用列表生成式生成一个列表
stmt = "[i for i in range(100)]"
t = timeit.timeit(stmt)
print(t)

输出:

>>> 4.831105600000153
>>> 2.4473655999999666

5. sleep函数

sleep函数用于使程序等待指定的时间。以下是一个示例:

import time

print("开始等待...")
time.sleep(5)  # 等待5秒
print("等待结束")

输出:

>>> 开始等待...
>>> 等待结束

6. strptime函数

strptime函数用于将字符串解析为日期时间对象。

import datetime

s = "2022-01-01 00:00:00"
dt = datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
print(dt)

输出:

>>> 2022-01-01 00:00:00

7. strftime函数

strftime函数用于将日期时间对象格式化为指定的字符串。

import datetime

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

输出:

>>> 2021-12-31 23:59:59

8. timestamp转日期时间

将时间戳转换为日期时间对象。

import datetime

timestamp = 1641035599.9999998
dt = datetime.datetime.fromtimestamp(timestamp)
print(dt)

输出:

>>> 2021-12-31 23:59:59.999999

9. 日期时间转timestamp

将日期时间对象转换为时间戳。

import datetime

dt = datetime.datetime(2021, 12, 31, 23, 59, 59)
timestamp = dt.timestamp()
print(timestamp)

输出:

>>> 1641033599.0

10. timedelta计算时间差

使用timedelta对象计算两个日期时间的时间差。

import datetime

dt1 = datetime.datetime(2021, 1, 1)
dt2 = datetime.datetime(2022, 1, 1)
delta = dt2 - dt1
print(delta)

输出:

>>> 365 days, 0:00:00

总结:Python中提供了许多用于处理日期和时间的函数和模块。本篇文章介绍了常用的十个时间函数,包括日期格式化、时间戳转换、时间差计算等操作。使用这些函数和模块,可以更便捷地处理和计算日期和时间。