python如何处理时间字符串?

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 datetime

def 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

回到顶部