我想添加几秒钟的时间,但我没有成功。这是我的例子
import datetime
str1 = sc.parallelize(["170745","140840"])
aa = str1.map(lambda l: datetime.datetime.strptime(l, '%H%M%S').strftime('%H:%M:%S'))
产量
['17:07:45', '14:08:40']
但我想要的是
['17:07:52', '14:08:47']
如何为每个转换时间添加7秒。我知道timedelta
有,但不确定。
答案 0 :(得分:2)
将字符串转换为日期后,您可以添加datetime.timedelta(0,7)
:
import datetime
str1 = sc.parallelize(["170745","140840"])
aa = str1.map(lambda l: (datetime.datetime.strptime(l, '%H%M%S') + datetime.timedelta(0,7)).strftime('%H:%M:%S'))
aa.collect()
返回:
['17:07:52', '14:08:47']
用常规函数替换lambda,可以说更容易理解:
import datetime
def processdate(timeString):
date = datetime.datetime.strptime(timeString, '%H%M%S')
date += datetime.timedelta(0,7)
return date.strftime('%H:%M:%S')
str1 = sc.parallelize(["170745","140840"])
aa = str1.map(processdate)
答案 1 :(得分:0)
您可以使用“+ datetime.timedelta(seconds = 7)”来解决此问题。
(datetime.datetime.strptime(l, '%H%M%S') + datetime.timedelta(seconds=7)).strftime('%H:%M:%S')
如果要计算两次之间的秒数,请直接减去两个datetime.datetime对象。
import datetime
starttime = datetime.datetime.now()
endtime = datetime.datetime.now()
print (endtime - starttime).seconds