# -*- coding: utf-8 -*-
"""
Created on Mon Apr 12 14:04:48 2021
@author: wuxian
"""
from datetime import datetime
def date_diff(start_date,end_date):
format_pattern = "%Y-%m-%d"
# 将 'str' 时间通过格式化模式转化为 'datetime.datetime' 时间戳, 然后再进行比较
difference = (datetime.strptime(end_date, format_pattern) - datetime.strptime(start_date, format_pattern))
return difference.days
date_diff('2021-03-01','2021-04-09')
df['days'] = df.apply(lambda x:date_diff(x['start_date'],x['end_date']),axis=1)
关于时间的一些函数用法
import time
import datetime
w = 42912 #数值型日期
a = datetime(1900, 1, 1) + datetime.timedelta(days=w-1)
a = datetime.date.today()
#数值型日期转成日期时间对象格式---------------------------------------(1)
type(a) #datetime.datetime datetime.datetime(2017, 6, 27, 0, 0)
# 将 'datetime.datetime' 类型时间通过格式化模式转换为 'str' 时间
b = datetime.strftime(a, "%Y-%m-%d")
#日期时间对象格式转成字符串=-----------------------------------------(2)
type(b) #str '2017-06-27'
c = time.strptime(b, "%Y-%m-%d")
#将字符串格式转成时间类型 --------------------------------------------(3)
#time.struct_time(tm_year=2017, tm_mon=6, tm_mday=27,
#tm_hour=0, tm_min=0,tm_sec=0, tm_wday=1, tm_yday=178, tm_isdst=-1)
year, month, day = c[:3] # (2017, 6, 27)
import datetime
update_time=1563509092
a = datetime.datetime.fromtimestamp(update_time)#-------------(4)
b = datetime.datetime.strftime(a, "%Y-%m-%d") #---------------(2)