我有一堆字符串以这种格式'2012-10-25'表示时间。我想执行加法,例如,在"2012-10-25"中添加一天,我想得到"2012-10-26"。我是否必须将字符串更改为日期时间对象才能执行此操作?我应该怎么做?
假设我已经完成了,现在我想将这个新字符串分配给 numpy.narray。我试过了:
pad = numpy.zeros((1,2), dtype=numpy.str)
padd[0,0]='2012-10-26'
但是 padd[0,0] 只有 '2',这意味着它只得到了字符串中的第一个字节。我想知道这里出了什么问题以及如何解决它。多谢!
from dateutil.parser import parse as parse_date
from datetime import timedelta
my_date = parse_date(string_date, dayfirst=False)
my_date = (my_date + timedelta(hours=24))
http://snag.gy/hQy2R.jpg
如果你想在没有任何额外软件包的情况下做到这一点:
import datetime
import numpy
time_string = '2012-10-26'
date_object = datetime.datetime.strptime(time_string, '%Y-%m-%d')
print str(date_object)
later_date_object = date_object + datetime.timedelta(0,3) # days, seconds, then other fields.
print str(later_date_object)
pad = numpy.zeros((1,2), dtype='object')
pad[0,0] = time_string
print pad[0,0]
请注意,您需要为 Numpy 数组指定dtype='object'
。
numpy.datetime64
类型:
import numpy as np
assert np.__version__[:3] == '1.7'
pad = np.empty((1,2), dtype='datetime64[D]') #NOTE: empty
pad[0,0] = np.datetime64('2012-10-26', 'D')
print(pad[0,0]) # -> 2012-10-26
pad[0,0] += np.timedelta64(1, 'D') # add 1 day
print(pad[0,0]) # -> 2012-10-27
请注意,datetime64
API 在不同的 numpy 版本上是不同的。
请参阅在日期时间、时间戳和日期时间之间进行转换64