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

Python内置的日期和时间处理函数的用法

发布时间:2023-06-12 23:03:39

Python内置了一些强大的日期和时间处理函数,可以方便地进行各种日期和时间操作。这些函数可以帮助我们解析日期字符串,进行时间操作,比较日期和时间,以及格式化日期和时间输出。本文将介绍Python中常用的日期和时间处理函数的用法及示例。

1. datetime模块

datetime模块是Python中用来处理日期和时间的标准模块,它提供了多种处理日期和时间的方法和类。其中最常用的类有datetime.datetime、datetime.date和datetime.time。下面是一些datetime模块的示例:

(1) 获取当前时间:

import datetime

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

输出结果:2021-10-11 16:48:39.430798

(2) 格式化日期和时间输出:

import datetime

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

输出结果:2021-10-11 16:48:39

%s 秒数(00~59)

%U 一年中的星期数(00~53,星期天是一个星期的开始)

%w 星期(0~6),星期天为 0,星期一为 1,以此类推

%W 一年中的星期数(00~53,星期一是一个星期的开始)

%x 本地日期

%X 本地时间

%y 去掉世纪的年份(00~99)

%Y 完整年份(例如2001)

(3) 获取某个时间点之前或之后的时间:

import datetime

now=datetime.datetime.now()
delta=datetime.timedelta(days=1)
print(now+delta)

输出结果:2021-10-12 16:48:39.430798

(4) 获取某个时间点的年份、月份、日期、小时、分钟和秒数:

import datetime

now=datetime.datetime.now()
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)

输出结果:

2021

10

11

16

48

39

2. dateutil模块

dateutil模块是一个第三方模块,提供了一些方便的日期和时间处理函数,包括解析日期字符串、计算日期差、获取日期和时间的属性等。下面是一些dateutil模块的示例:

(1) 解析日期字符串:

from dateutil.parser import parse

date_str='2021-10-11 16:48:39'
date=parse(date_str)
print(date)

输出结果:2021-10-11 16:48:39

(2) 计算两个日期之间的差值:

from dateutil.relativedelta import relativedelta

date1=parse('2021-10-11 16:48:39')
date2=parse('2021-10-10 17:00:00')
diff=relativedelta(date1,date2)
print(diff)

输出结果:relativedelta(days=+1, seconds=+50839)

(3) 获取日期和时间的属性:

from dateutil.parser import parse

date_str='2021-10-11 16:48:39'
date=parse(date_str)
print(date.year)
print(date.month)
print(date.day)
print(date.hour)
print(date.minute)
print(date.second)

输出结果:

2021

10

11

16

48

39

3. time模块

time模块是Python内置的处理时间的模块,主要提供了时间处理和格式化的函数。下面是一些time模块的示例:

(1) 获取当前时间:

import time

now=time.localtime()
print(now)

输出结果:time.struct_time(tm_year=2021, tm_mon=10, tm_mday=11, tm_hour=17, tm_min=21, tm_sec=26, tm_wday=0, tm_yday=284, tm_isdst=0)

(2) 格式化输出时间:

import time

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

输出结果:2021-10-11 17:21:26

(3) 获取时间戳:

import time

timestamp=time.time()
print(timestamp)

输出结果:1633972846.979298

(4) 时间戳转为本地时间:

import time

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

输出结果:2021-10-11 17:21:26

4. calendar模块

calendar模块提供了一些处理日期和时间的函数,主要用于生成日历和日期功能。下面是一些calendar模块的示例:

(1) 获取某个月份的日历:

import calendar

cal=calendar.month(2021,10)
print(cal)

输出结果:

October 2021

Mo Tu We Th Fr Sa Su

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

(2) 判断某一年是否是闰年:

import calendar

year=2021
if calendar.isleap(year):
    print(f'{year} is a leap year')
else:
    print(f'{year} is not a leap year')

输出结果:2021 is not a leap year

(3) 获取某个月份的 天和最后一天日期:

import calendar

year=2021
month=10
_, days=calendar.monthrange(year,month)
first_day=f'{year}-{month}-01'
last_day=f'{year}-{month}-{days}'
print(f'first day:{first_day},last day:{last_day}')

输出结果:first day:2021-10-01,last day:2021-10-31

总结

Python内置的日期和时间处理函数非常丰富,可以方便地进行各种日期和时间操作,同时第三方模块也提供了很多有用的函数。在实际编程中,需要根据具体需求选择合适的函数和模块来处理日期和时间,以提高代码效率和可读性。