首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在两个其他日期之间生成随机日期

在两个其他日期之间生成随机日期
EN

Stack Overflow用户
提问于 2009-02-16 13:30:04
回答 27查看 191.8K关注 0票数 184

如何生成必须介于其他两个给定日期之间的随机日期?

函数的签名应该是这样的:

代码语言:javascript
运行
复制
random_date("1/1/2008 1:30 PM", "1/1/2009 4:50 AM", 0.34)
                   ^                       ^          ^

            date generated has  date generated has  a random number
            to be after this    to be before this

并返回一个日期,如下所示:

EN

Stack Overflow用户

发布于 2017-12-23 04:57:51

这是一个从emyller的方法修改而来的解决方案,它返回任意分辨率的随机日期数组

代码语言:javascript
运行
复制
import numpy as np

def random_dates(start, end, size=1, resolution='s'):
    """
    Returns an array of random dates in the interval [start, end]. Valid 
    resolution arguments are numpy date/time units, as documented at: 
        https://docs.scipy.org/doc/numpy-dev/reference/arrays.datetime.html
    """
    start, end = np.datetime64(start), np.datetime64(end)
    delta = (end-start).astype('timedelta64[{}]'.format(resolution))
    delta_mat = np.random.randint(0, delta.astype('int'), size)
    return start + delta_mat.astype('timedelta64[{}]'.format(resolution))

这种方法的好处之一是

非常擅长将事情转换为日期,所以你可以将开始/结束日期指定为字符串、日期时间、熊猫时间戳……几乎任何东西都可以工作。

票数 1
EN
查看全部 27 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/553303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档