python如何处理时间字符串?
def salary_cal(OT_date): year = int(time.strftime('%Y',time.strptime(OT_date.day ,'%d.%m.%Y')) )
mon = int(time.strftime('%m',time.strptime(OT_date.day ,'%d.%m.%Y')) )
day = int(time.strftime('%d',time.strptime(OT_date.day ,'%d.%m.%Y')) )
global over_time_salary
if is_workday(datetime.date(year,mon,day)):
over_time_salary+= salary_before_tax/22/8*(float(OT_date.time))*1.5
else:
over_time_salary+= salary_before_tax/22/8*(float(OT_date.time))*2
如上代码想要实现的是一个加班费计算,平时1.5倍,其他日子2倍。
这是一个爬虫程序的一个函数,因为爬出来的数据格式就是11.03.2020这样的格式。
所以我先把时间格式化一下,然后再按格式提取出来,这样的风格我感觉比较有“面向对象”的感觉,但是套了两层显得繁琐。
直接提取年月日也可以,就直接day=int(list[0:1])即可,但是我总觉得这样做是C语言的风格,过程处理了。。
所以这里问大家两个问题:
1.如果爬虫爬到11.03.2020这样的时间字符串,我这样处理手段是否低级?
2.我这代码写的怎么样啊?我的思路完全是按着C来的,是不是有点落后?
回答:
我觉得个人用户写python,第一能用,第二以后要改能看得懂,就行了。其他的就随缘了。
from datetime import datetimedef salary_cal(OT_date):
d = datetime.strptime(OT_date.day ,'%d.%m.%Y')
# day,month,year=OT_date.split('.')
# d = datetime(year,month,day)
global over_time_salary
base = salary_before_tax/22/8*(float(OT_date.time))
if is_workday(d): # d.isoweekday() in [...]
over_time_salary+= base*1.5
else:
over_time_salary+= base*2
回答:
直接strptime转成时间类型不就可以了么,为什么要还要把年月日拆出来再装回去?
以上是 python如何处理时间字符串? 的全部内容, 来源链接: utcz.com/p/937933.html