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