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

Python中的常用日期time函数

发布时间:2023-06-21 00:56:00

Python中常用的日期和时间函数有多种,包括time、datetime、calendar和dateutil等模块。这些模块提供了各种各样的功能,比如格式化日期和时间、计算时间间隔、转换不同的时区等等。在本文中,我们将重点介绍Python中的常用日期和时间函数,帮助读者更好地掌握这些功能。

1. time模块

time模块是Python中最基本的日期和时间模块之一,它提供了几个与时间相关的函数。下面是一些常用的time模块函数:

1) time.time()

time.time()函数返回当前时间戳,即自1970年1月1日00:00:00到当前时间的秒数。它常用于计算代码的运行时间:

import time
start = time.time()
# ....code execution
end = time.time()
print("Time taken in seconds: ", end - start)

2) time.sleep()

time.sleep()函数可以让当前线程休眠指定的时间,单位是秒。它常用于模拟程序或测试过程中需要等待一段时间的情况:

import time
print("before sleep")
time.sleep(5) # wait for 5 seconds
print("after sleep")

3) time.localtime()

time.localtime()函数将当前时间戳转换为本地时间,返回一个struct_time对象。struct_time对象包含9个元素,分别代表年、月、日、时、分、秒、一周中的第几天、一年中的第几天以及夏令时标志。使用方式如下:

import time
local_time = time.localtime()
print("Local time:", local_time)

4) time.strftime()

time.strftime()函数将一个struct_time对象转换为指定格式的字符串。格式化字符串由转义序列和普通字符组成,转义序列以%开头。一些常用的转义序列包括%Y代表年份(四位数字)、%m代表月份(两位数字)、%d代表日期(两位数字)、%H代表小时(24小时制,两位数字)、%M代表分钟(两位数字)、%S代表秒(两位数字)等等。例如:

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

2. datetime模块

datetime模块是Python中处理日期和时间的另一个常用模块,它提供了一些强大的日期和时间函数。下面是一些常用的datetime模块函数:

1) datetime.datetime.now()

datetime.datetime.now()函数返回当前日期时间,格式为datetime对象。使用方式如下:

import datetime
current_time = datetime.datetime.now()
print("Current datetime:", current_time)

2) datetime.datetime.strptime()

datetime.datetime.strptime()函数将一个字符串解析为datetime对象。它需要两个参数: 个参数是待解析的字符串,第二个参数是字符串的格式。字符串格式化与time模块的方式相似。例如:

import datetime
date_string = "2022-08-01 15:30:00"
date_object = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print("Date object:", date_object)

3) datetime.timedelta()

datetime.timedelta()函数用来计算时间差,返回一个timedelta对象。它支持多种运算,包括加减乘除等。使用方式如下:

import datetime
time_delta = datetime.timedelta(days=10, hours=5, minutes=30, seconds=20)
print("Time delta:", time_delta)

4) datetime.datetime.strftime()

datetime.datetime.strftime()函数与time模块的strftime()函数作用相似,用来将datetime对象转换为指定格式的字符串。使用方式如下:

import datetime
current_time = datetime.datetime.now()
format_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted time:", format_time)

3. calendar模块

calendar模块用于生成日历,支持多种格式和选项。下面是一些常用的calendar模块函数:

1) calendar.month()

calendar.month()函数用来返回指定月份的日历。它需要两个参数: 个参数是年份,第二个参数是月份。使用方式如下:

import calendar
month_calendar = calendar.month(2022, 5)
print("May 2022 calendar:")
print(month_calendar)

2) calendar.weekday()

calendar.weekday()函数用来返回指定日期是星期几。它需要三个参数:年、月、日。星期为0-6,0代表星期一,1代表星期二,以此类推。例如:

import calendar
weekday = calendar.weekday(2022, 1, 1)
print("January 1st, 2022 is weekday:", weekday)

3) calendar.isleap()

calendar.isleap()函数用来判断指定年份是否是闰年,返回True或False。例如:

import calendar
is_leap_year = calendar.isleap(2022)
print("2022 is a leap year:", is_leap_year)

4) calendar.calendar()

calendar.calendar()函数用来生成指定年份的日历。它需要一个参数,即年份。使用方式如下:

import calendar
year_calendar = calendar.calendar(2022)
print("2022 calendar:")
print(year_calendar)

4. dateutil模块

dateutil模块是Python中对日期和时间处理支持 的模块之一,它提供了非常多的功能。下面是一些常用的dateutil模块函数:

1) parser.parse()

dateutil.parser模块中的parse()函数用来将一个字符串转换为datetime对象。它可以自动识别字符串中的日期和时间格式,并解析为datetime对象。例如:

from dateutil import parser
date_string = "2022-08-01 15:30:00"
date_object = parser.parse(date_string)
print("Date object:", date_object)

2) relativedelta()

dateutil.relativedelta模块中的relativedelta()函数用来计算两个日期之间的时间差。与datetime模块中的timedelta()函数不同,relativedelta()函数是按照自然时间单位计算的,例如月份、季度和年份等。使用方式如下:

from dateutil.relativedelta import *
date1 = datetime.datetime(2022, 5, 1)
date2 = datetime.datetime(2022, 8, 1)
time_diff = relativedelta(date2, date1)
print("Time diff in months:", time_diff.months)

3) tzutc()

dateutil.tz中的tzutc()函数用来生成UTC(协调世界时)时区,返回tzutc对象。相比于datetime模块的timezone()函数,dateutil.tz中的函数可以自动生成时区的偏移量信息,无需手动指定。例如:

from datetime import datetime
from dateutil import tz
utc_zone = tz.tzutc()
dt = datetime(2022, 5, 1, 15, 30, tzinfo=utc_zone)
print("UTC datetime:", dt)

总结

本文介绍了Python中常用的日期和时间函数,包括time、datetime、calendar和dateutil等模块。这些模块提供了丰富的功能,可以很方便地处理日期和时间问题,让我们更加专注于业务逻辑的实现。需要注意的是,在使用这些函数时,需要结合具体的业务需求和时间格式来进行调整,才能发挥它们的最大效益。