首页 > 解决方案 > 将“年、年中的某一天、小时、分钟、秒”值的字符串转换为“年月日小时分钟秒”

问题描述

我需要将一串“年,年,小时,分钟,秒”值转换为“年月日小时分钟秒”,即

0   2015 142 0 0 0.986
1   2015 142 0 0 1.017
2   2015 142 0 0 1.048
3   2015 142 0 0 1.079
4   2015 142 0 0 1.111
5   2015 142 0 0 1.142
6   2015 142 0 0 1.173
7   2015 142 0 0 1.204
8   2015 142 0 0 1.236
9   2015 142 0 0 1.267

进入(2015 5 22 0:0:0.986)。

我找到了下面的代码..并尝试了这个...

import datetime
datetime.datetime.strptime('2015 142 0 0 0.986', '%Y %j %H:%M:%S.%f')

给出以下错误

ValueError: time data '2015 142 0 0 0.986' does not match format '%Y %j %H:%M:%S.%f'

我也试过:分隔年、日、时、分、秒列

datetime.datetime(2015, 1, 1) + datetime.timedelta(142 - 1)+datetime.timedelta(hours=0,minutes=0,seconds=0.986)

它抛出错误:

TypeError: unsupported type for timedelta seconds component: numpy.int64

任何建议。

谢谢你

标签: python-3.x

解决方案


您的模式略有偏差,并且在时间部分使用冒号,输入字符串中实际上没有冒号。试试这个版本:

import datetime
date = datetime.datetime.strptime('2015 142 0 0 0.986', '%Y %j %H %M %S.%f')
print(date)

这打印:

2015-05-22 00:00:00.986000

推荐阅读