我是python的新手,并试图学习如何读取数据文件。我有一个带时间戳的文件:
[2015-07-27T18:01:55.7647616+01:00 2015-07-27T18:01:55.7827840+01:00
2015-07-27T18:01:55.8142720+01:00 ..., 2015-07-27T18:04:05.3064192+01:00
2015-07-27T18:04:05.3419776+01:00 2015-07-27T18:04:05.3713280+01:00]
我在做:
times = np.loadtxt(filename, dtype=object)
print times[0]
num_records = np.size(times,0)
for date in range(num_records):
print time.strptime(times[date], "%Y-%b-%dT%H:%M:%S.0000000+00:000")
但是我收到以下错误:
ValueError: time data '2015-07-27T18:01:55.7647616+01:00' does not match format '%Y-%b-%dT%H:%M:%S.0000000+00:000'
我想知道是否有人可以澄清如何匹配此时间格式的格式?最后,我想将该日期转换为数字,以便我可以对其进行统计。怎么做?
答案 0 :(得分:2)
您也可以使用dateutil.parser
模块。
示例/演示 -
>>> import dateutil.parser
>>> dateutil.parser.parse('2015-07-27T18:01:55.7647616+01:00')
datetime.datetime(2015, 7, 27, 18, 1, 55, 764761, tzinfo=tzoffset(None, 3600))
在您的代码中 -
import dateutil.parser
times = np.loadtxt(filename, dtype=object)
print times[0]
num_records = np.size(times,0)
for date in range(num_records):
print dateutil.parser.parse(times[date])
答案 1 :(得分:0)
您不会复制错误引发的物理格式......
试试这个:
import datetime
now = datetime.datetime.now()
print now
默认情况下,它会以您想要的格式打印。
答案 2 :(得分:0)
这是我能得到的最接近的(忽略了mircosconds的最后一位数和+01:00)
import time
dt = time.strptime('2015-07-27T18:04:05.3419776+01:00'[:26],
'%Y-%m-%dT%H:%M:%S.%f')
print(dt)