目录
引言
“时间”是我们在进行数据分析时十分重要的维度,比如日期、分时,因此在初学python时,学会与“时间”相处是我们的必修课,这就要学习python中两个非常重要的处理时间的库——time
和datetime
。
import time,datetime
《小白学python:时间和日期 (time, datetime) (一)》向读者介绍了python中常见的时间格式和不同时间格式的相互转换,本文将在此基础上介绍:
- 时间信息提取
比如:某一日期是星期几、一年中的第几天、一年中的第几周 ;提取时间中的年、月、日 ··· - 时间计算
比如:两个日期间隔的天数、获取日期前(后)N天的日期 ··· - 时间生成
比如:生成两个日期之间的所有日期、生成各月末的日期 ···
Let’s get started!
一、时间信息提取
如何获取某一日期是星期几、一年中的第几天、一年中的第几周?
这个问题相信看过《小白学python:时间和日期 (time, datetime) (一)》的读者已经有了答案——可以直接用time.struct_time时间格式来看。
下面举个例子:
t_str='2020 7 25'
time.strptime(t_str,'%Y %m %d')
>>>
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=25,
tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=207,
tm_isdst=-1)
2020年7月25日的tm_wday=5
,因此该日为周六(再次强调!!! time.struct_time中的tm_wday为0-6 对应周一~周日),tm_yday=207
,因此该日是2020年的第207天,而要获取该日是这年中的第几周,直接取207除以7的商再加1即可。
如何提取部分时间信息?
比如输入的时间字符串是‘2020-07-25 12:30:00’,我想只保留日期部分,同时再加上这一天是周几,即“2020-07-25 Sat”。
t_datetime=datetime.datetime(2020,7,25,12,30,0)
datetime.datetime.strftime(t_datetime,'%Y-%m-%d %a')
>>>'2020-07-25 Sat'
#或者
t_datetime.strftime('%Y-%m-%d %a')
>>>'2020-07-25 Sat'