第一部分:我有一个打开文件的Python脚本,以下列格式获取起始时间码字符串:
136:17:30:00(DOY:HH:MM:SS)
以格式停止时间码字符串:
137:01:30:00(DOY:HH:MM:SS)
用户输入开始年份(2017年)和终止年份(2017年)。
我想知道如何将开始和停止时间码(以及年份字符串)转换为' datetime"宾语。这被认为是实验的开始和停止时间。
第二部分:用户将输入"录制"开始时间和录音"以格式停止时间:
2017:136:18:00:00(年份:DOY:HH:MM:SS) 2017:137:01:00:00(年份:DOY:HH:MM:SS)
这被认为是记录开始/停止时间。
我也希望转换为日期时间对象。我想它与第一部分的机制相同。
我想首先验证记录停止/开始时间是否在实验停止/开始时间内,并且能够从开始时间减去停止时间。
有些Python文档让我对如何做到这一点感到困惑。有任何想法吗?提前谢谢。
答案 0 :(得分:2)
Python的datetime.strptime()
用于将日期的字符串表示转换为datatime
个对象。它允许您为一年中的某一天指定%j
,如下所示:
from datetime import datetime
print datetime.strptime("136:17:30:00", "%j:%H:%M:%S").replace(year=2017)
print datetime.strptime("2017:136:17:30:00", "%Y:%j:%H:%M:%S")
这会显示:
2017-05-16 17:30:00
2017-05-16 17:30:00
.replace()
用于为datetime
个对象提供一年,否则默认为1900
。
总结:
%j
- 作为零填充十进制数字的一年中的某一天
%Y
- 以十进制数字为世纪的年份
%H
- 小时(24小时制)作为零填充十进制数
%M
- 分钟为零填充十进制数
%S
- 第二个作为零填充十进制数。
如果您将开始和结束代码转换为datetime
个对象,则可以减去它们,为您提供以下时间:
dt_start = datetime.strptime("136:17:30:00", "%j:%H:%M:%S")
dt_end = datetime.strptime("137:01:30:00", "%j:%H:%M:%S")
print dt_end - dt_start
给你:
8:00:00
答案 1 :(得分:0)
我不知道你的问题究竟是什么。你今年做了什么。我希望以下内容对您有所帮助:
time1='136:17:30:00'
time2='137:01:30:00'
#yr=2017
from datetime import timedelta
def objMaker(time):
arr=time1.split(':')
obj=timedelta(hours=int(arr[1]),minutes=int(arr[2]),seconds=int(arr[3]))
return obj
obj1=objMaker(time1)
obj2=objMaker(time2)