我有一串字符串表示时间格式为'2012-10-25'。我想对它进行补充,例如,在'2012-10-25'中添加一天,我想得到'2012-10-26'。我是否必须将字符串更改为datetime对象才能执行此操作?我应该怎么做?
假设我已经完成了,现在我想将这个新字符串分配给numpy.narray。我试过了:
pad = numpy.zeros((1,2), dtype=numpy.str)
padd[0,0]='2012-10-26'
但padd [0,0]只有'2',这意味着它只得到字符串中的第一个字节。我想知道这里有什么问题以及如何解决它。非常感谢!
答案 0 :(得分:1)
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))
答案 1 :(得分:0)
如果你想在没有任何额外包裹的情况下这样做:
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'
。
答案 2 :(得分:0)
您可以使用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
请注意不同 numpy版本上的datetime64
API与不同。