将保存为字符串的时间数据转换为以秒为单位的整数

时间:2018-07-25 21:57:29

标签: python numpy matplotlib

我有一些时间数据作为字符串读入numpy数组。格式为

x = ['11:13:01.337 AM', '11:13:03.337 AM', '11:13:05.337 AM']

我希望能够在不确定的时间内清晰地绘制此图,比如说数据持续了4个小时。如何将其转换为合理的图形以进行绘制?我不确定哪种形式最好,所以建议会有所帮助。您可能会说我是菜鸟,我的老板和我感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

time.strptime不同,datetime.strptime可以解析此类字符串,包括微秒,您可以将结果转换为数字(自午夜以来的秒数):

import datetime
def parse(s):
    d = datetime.datetime.strptime(s, "%I:%M:%S.%f %p")
    return 3600 * d.hour + 60 * d.minute + d.second + d.microsecond * 1e-6

并像这样使用它:

x = ['11:13:01.337 AM', '11:13:03.337 AM', '11:13:05.337 AM']
print([parse(s) for s in x])

即使在DST更改的情况下,这也应该是安全的,因为strptime仅解析时间,并且不尝试任何此类语义转换