有一种更简单的方法可以实现这个,而不需要显式地调用除numpy之外的任何库。
Numpy有一个相当强大的日期时间数据类型:特别是对于这种情况,您可以添加和减去整数,并将其视为最小的可用时间单位。例如,对于%Y-%m-%d格式:
exampledatetime1 = np.datetime64('2017-01-01')
exampledatetime1 + 1
>>
2017-01-02
然而,对于 %Y-%m-%d %H:%M:%S 格式:
exampledatetime2 = np.datetime64('2017-01-01 00:00:00')
exampledatetime2 + 1
>>
2017-01-01 00:00:01
在这种情况下,由于你只有一天的分辨率信息,你可以简单地执行以下操作:
import numpy as np
bimonthly_days = np.arange(0, 60)
base_date = np.datetime64('2017-01-01')
random_date = base_date + np.random.choice(bimonthly_days)
或者,如果您希望更加严谨:
import numpy as np
def random_date_generator(start_date, range_in_days):
days_to_add = np.arange(0, range_in_days)
random_date = np.datetime64(start_date) + np.random.choice(days_to_add)
return random_date
然后只需使用:
yourdate = random_date_generator('2012-01-15', 60)