使用Python的datetime函数来格式化日期时间
Python中的datetime模块提供了大量功能来处理日期和时间,包括日期计算,日期格式化和日期解析等。在Python中,日期时间格式的处理涉及到,字符串转日期时间,日期时间转字符串以及日期时间间的计算等等。datetime函数提供了灵活的工具可以满足多种日期时间格式的需要。
从Python 2.3开始,datetime模块作为Python中处理日期时间最重要的工具之一,可方便地获取当前日期时间、日期时间计算、日期时间格式化输出、日期时间比较等常用操作。要使用这个模块,首先需要使用import关键字将其引入。
import datetime
在datetime模块中最常用的类有4个,分别是date、time、datetime、timedelta。这4个类可以组合使用,构建出各式各样的时间序列,如只有日期的,只有时间的,还有日期时间结合的等等,这里以date和time为例进行说明。
date类提供了year、month、day三个方法用于获取年月日,定义日期并不需要时间的概念,与当天不同的日期构建方法有很多。
import datetime
#获取当前日期
today = datetime.date.today()
print("Today's date:",today)
#获取指定日期
date = datetime.date(2019, 10, 12)
print("Selected date:",date)
#从字符串转化日期
str_date = "2020-10-01"
year, month, day = map(int, str_date.split("-"))
date_str = datetime.date(year,month,day)
print("Converted date:",date_str)
time类则提供hour、minute、second、microsecond等方法用于获取时间的小时、分钟、秒、毫秒等属性。
import datetime
#获取当前时间
time = datetime.datetime.now().time()
print("Current time:",time)
#获取指定时间
time = datetime.time(16, 30, 45)
print("Selected time:",time)
#从字符串转化时间
str_time = "12:20:00"
hour, minute, second = map(int, str_time.split(":"))
time_str = datetime.time(hour,minute,second)
print("Converted time:",time_str)
datetime类则将上述两个类结合起来,并提供了更多的方法,如strftime()方法,该方法可以将日期时间格式化为想要的样式。其格式化串和time模块用的一样,具体的转换标识符可以参考strftime()的文档。
import datetime
#获取当前日期和时间
now = datetime.datetime.now()
print("Current date and time:",now)
#获取指定日期和时间
date_time = datetime.datetime(2022, 12, 22, 13, 50, 30)
print("Selected date and time:",date_time)
#从字符串转化日期时间
str_date_time = "2021-08-17 12:30:00"
date_time_str = datetime.datetime.strptime(str_date_time, '%Y-%m-%d %H:%M:%S')
print("Converted date and time:",date_time_str)
timedelta类则提供了日期时间差的方法,比如计算两个日期的差值,计算两个时间的差值等等。
import datetime
#计算日期差值
d1 = datetime.date(2021,8,1)
d2 = datetime.date(2021,8,16)
print(d2-d1)
#计算时间差值
t1 = datetime.datetime.now().time()
t2 = datetime.time(8,15,30)
print(t1<t2)
以上即是datetime模块的主要用法。在日常开发中,时间日期处理的需求很多,这时可以结合datetime模块的各个类来进行灵活运用,如生成日期时间序列、日期计算、时间差计算、日期时间格式化等操作。同时,Python也提供了dateutil、pytz等第三方工具可以方便地做更加复杂的时间日期处理。
