切割字符串使用split(),默认空格切割,加入参数,按参数切割
string.split()[0] #空格切割,取空格左侧的字符串
string.split()[1] #空格切割,取空格右侧的字符串
string.split('上班')[0] #按“上班”二字切割字符串,取“上班”二字左侧的字符串
string.split('下班')[1] #按“上班”二字切割字符串,取“上班”二字右侧的字符串
#把datetime转成字符串
def datetime_toString(dt):
return dt.strftime("%Y-%m-%d-%H")
#把字符串转成datetime
def string_toDatetime(string):
return datetime.strptime(string, "%Y-%m-%d-%H")
#把字符串转成时间戳形式
def string_toTimestamp(strTime):
return time.mktime(string_toDatetime(strTime).timetuple())
#把时间戳转成字符串形式
def timestamp_toString(stamp):
return time.strftime("%Y-%m-%d-%H", tiem.localtime(stamp))
#把datetime类型转外时间戳形式
def datetime_toTimestamp(dateTim):
return time.mktime(dateTim.timetuple())
年-月-日-时:%Y-%m-%d-%H
时分秒:%H:%M:%S
字符串比较大小:
a = '2017-10-18 22:17:46'
b = '2017-10-19 22:17:40'
print a > b
# 结果False
python中字符串的大小比较,是按照字符顺序,从前往后依次比较字符的ASCII数值,例如‘abc’要小于‘abd’。因此,时间字符串也可以直接比大小。
datetime类型的时间格式可以进行加减操作,加减之后得到的是一个timedelta对象

可以使用timedelta.seconds去做比较,切记这里时切换成秒来比较,下面是我写的一个计算加班费的python文件,仅供学习python知识,以及自己温习:
#描述:计算加班费
#作者:Rookie
#时间:2019-03-26
import time
import unittest
from datetime import datetime,timedelta
days = 21
f = open('3_month.txt','r',encoding='UTF-8')
line = f.readline()
line=line.strip('\n')
sum1 = 0
sum2 = 0
sum3 = 0
sum = 0
time3 = 0
while line:
if ' ' in line:
type = line.split()[1]
# print(type)
time1 = (line.split('上班')[1]).split('下班')[0]
time1 = datetime.strptime(time1, '%H:%M:%S')
time2 = (line.split('下班')[1]).split()[0]
time2 = datetime.strptime(time2, '%H:%M:%S')
if type == '正常':
time3 += (time2 - datetime.strptime('17:30:00', '%H:%M:%S')).seconds
# print(time3)
if time2 > datetime.strptime('20:00:00', '%H:%M:%S'):
sum1 += 10;
#print(sum1)
else:
time3 += (time2-time1).seconds
# print(time3)
if (time2-time1).seconds > (4*3600):#两个datetime对象 相减后 得到的是一个timedelta对象,而timedelta对象当然是不能与 int 对象来比较大小的
sum2 +=10;
#print(sum2)
line = f.readline()
line = line.strip('\n')
#print(time3/3600)
if time3 > (days*2*3600):
sum3 += (((time3 - days * 2 * 3600) / 3600) * 6)
sum = sum1 + sum2 + sum3
print(sum1)
print(sum2)
print(sum3)
print(sum)
else:
sum = sum1+sum2
print(sum)
本文介绍了Python中时间处理的相关知识,包括datetime格式如%Y-%m-%d-%H,%H:%M:%S,字符串比较大小遵循ASCII数值顺序,以及datetime类型支持的时间加减操作,加减后得到timedelta对象。还提到了可以利用timedelta.seconds进行时间比较,并给出了一个计算加班费的Python代码示例,适用于学习和复习Python时间处理。
1770

被折叠的 条评论
为什么被折叠?



