了解Python中的时间函数,掌握时间日期转换
Python中的时间函数在开发中非常重要,因为时间是程序中一个非常重要的因素。Python提供了许多方便的时间函数,可以方便地处理日期和时间。
Python中处理时间需要导入time和datetime模块。time模块提供了基本的时间函数,datetime模块提供了更高级的时间函数,包括datetime和timedelta等。
一、time模块的时间函数
time模块提供了以秒为基础的时间函数,这些函数大致可以分为以下几类:
1. 获取当前时间
time模块的time()函数可以获取当前时间,返回一个浮点型的时间戳,单位是秒。例如:
import time
now = time.time()
print(now) # 输出当前时间戳,例如:1597105320.4342742
2.时间戳转为时间元组
time模块的localtime()函数可以将时间戳转换为时间元组,时间元组有九个元素,分别是年、月、日、时、分、秒、一周的第几天、一年的第几天和夏令时。例如:
import time
now = time.time()
localtime = time.localtime(now)
print(localtime) # 输出时间元组,例如:time.struct_time(tm_year=2020, tm_mon=8, tm_mday=11, tm_hour=16, tm_min=0, tm_sec=32, tm_wday=1, tm_yday=224, tm_isdst=0)
3.时间元组转为格式化时间字符串
time模块的strftime()函数可以将时间元组转换为格式化的时间字符串。例如:
import time
localtime = time.localtime()
format_time = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
print(format_time) # 输出格式化的时间字符串
4. 格式化时间字符串转为时间元组
time模块的strptime()函数可以将格式化的时间字符串转换为时间元组。例如:
import time
format_time = "2020-08-11 16:00:00"
localtime = time.strptime(format_time, "%Y-%m-%d %H:%M:%S")
print(localtime) # 输出时间元组
二、datetime模块的时间函数
datetime模块提供了更高级的时间函数,包括datetime类、date类和time类等。datetime类是最常用的时间类之一,它比time模块更加方便和灵活。
1. 获取当前时间
datetime模块的datetime类可以获取当前时间,返回一个datetime对象(包括日期和时间)。例如:
import datetime
now = datetime.datetime.now()
print(now) # 输出当前时间
2. 时间元组转为datetime对象
datetime模块的datetime类的fromtimestamp()函数可以将时间戳转换为datetime对象。例如:
import datetime
now = datetime.datetime.now()
timestamp = now.timestamp()
datetime_object = datetime.datetime.fromtimestamp(timestamp)
print(datetime_object) # 输出与now相同的datetime对象
3. datetime对象转为时间元组
datetime对象可以通过timetuple()函数转换为时间元组。例如:
import datetime
now = datetime.datetime.now()
time_tuple = now.timetuple()
print(time_tuple) # 输出时间元组
4. 时间元组转为datetime对象
datetime模块的datetime类提供了fromtimestamp()和fromordinal()等函数,可以将时间元组转换为datetime对象。例如:
import datetime
time_tuple = (2020, 8, 11, 16, 0, 0, 1, 224, -1)
datetime_object = datetime.datetime.fromtimestamp(time.mktime(time_tuple))
print(datetime_object) # 输出与time_tuple相同的datetime对象
5. datetime对象转为格式化时间字符串
datetime对象可以通过strftime()函数将其转换为格式化的时间字符串。例如:
import datetime
now = datetime.datetime.now()
format_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(format_time) # 输出格式化的时间字符串
6. 格式化时间字符串转为datetime对象
datetime模块的datetime类提供了strptime()函数,可以将格式化的时间字符串转换为datetime对象。例如:
import datetime
format_time = "2020-08-11 16:00:00"
datetime_object = datetime.datetime.strptime(format_time, "%Y-%m-%d %H:%M:%S")
print(datetime_object) # 输出与format_time相同的datetime对象
三、常用的时间运算
1. datetime的加减
我们常常需要进行时间的加减运算,datetime类提供了加减运算符,可以直接进行时间的加减计算。例如:
import datetime
now = datetime.datetime.now()
one_day = datetime.timedelta(days=1)
yesterday = now - one_day
tomorrow = now + one_day
print(yesterday, now, tomorrow) # 输出昨天、今天和明天的日期
2. datetime和date的转换
datetime类和date类之间可以进行转换,datetime类转换成date类可以使用date()函数,date类转换成datetime类可以使用datetime.combine()函数。例如:
import datetime
now = datetime.datetime.now()
date_only = now.date()
print(date_only) # 输出当天的日期
datetime_object = datetime.datetime.combine(date_only, datetime.time.min)
print(datetime_object) # 输出当天的0时0分0秒时间戳
总结
以上就是Python中常用的时间函数和时间运算的介绍。在开发中,我们需要经常使用时间函数来进行日期、时间等的处理。了解Python中的时间函数和时间运算是我们进行科学计算或者进行时间分析等工作的首要条件。只有熟悉了这些函数的使用方法,才能更加高效地完成开发任务。
