Python:从文件和comp获取时间

2024-06-01 01:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文

第一部分:我有一个Python脚本,可以打开一个文件,获取格式如下的起始时间码字符串:

136:17:30:00(多伊:啊:毫米:不锈钢)

以及以下格式的停止时间码字符串:

137:01:30:00(多伊:啊:毫米:不锈钢)

用户输入开始年份(2017)和停止年份(2017)。你知道吗

我想知道如何将开始和停止时间码(以及年份字符串)转换为“datetime”对象。这被认为是一个实验的开始和停止时间。你知道吗

第二部分:用户将按以下格式输入“录制”开始时间和“录制”停止时间:

2017:136:18:00:00(年份:DOY:HH:MM:SS) 2017:137:01:00:00 (年份:DOY:HH:MM:SS)

这被认为是记录开始/停止时间。你知道吗

我还想转换成datetime对象。我想这和第一部分的机制是一样的。你知道吗

我想首先验证记录的停止/开始时间是否在实验停止/开始时间内,并且能够从开始时间中减去停止时间。你知道吗

一些Python文档让我很困惑如何做到这一点。有什么想法吗?提前谢谢。你知道吗


Tags: 对象字符串用户脚本datetime格式hh记录
2条回答

Python的^{}用于将日期的字符串表示形式转换为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

我不知道你到底想从你的问题中得到什么。你今年在做什么。不过,我希望以下内容能对您有所帮助:

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)

相关问题 更多 >