【问题标题】:Generate Random Date/Time Python 2.6生成随机日期/时间 Python 2.6
【发布时间】:2019-07-17 22:22:41
【问题描述】:

我想创建一个函数,该函数将创建一个随机时间戳并转换为字符串。尝试了几种方法,但不确定问题是否出在 python 2.6

试过了,但遇到错误:

TypeError: unsupported operand type(s) for *: 'datetime.timedelta' and 'float'
def gen_datetime(min_year=2018, max_year=datetime.now().year):

    start = datetime(min_year, 1, 1, 00, 00, 00)

    years = max_year - min_year + 1

    end = start + timedelta(days=365 * years)

    return start + (end - start) * random.random()

...
randomTime = str(gen_datetime())

【问题讨论】:

    标签: python-2.6


    【解决方案1】:

    datetime.timedelta 对象与 float 的乘法仅在 Python 3.x 中引入。您可以通过比较 Datetime docs from Python 2.xDatetime docs from Python 3.x 来确认这一点

    注意 Python 2.x 接受 intlong 所以应该可以乘以:

    random.randint(a,b)
    

    这将在 ab

    之间生成一个int

    【讨论】:

    • 这行得通,但是它没有给出随机的 时间 和日期。知道为什么会这样吗?它并没有完全随机化日期。我正在尝试这个:return start + (end - start) * random.randint(3,5)
    • 按照您的方式,您只是更改日期时间的年份,而不是时间。我的猜测是您应该更改您的timedelta(days=365 * years) 并修改秒数,例如timedelta(seconds=rondom_seconds)Take a look in nosklo's response here.
    猜你喜欢
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 2013-05-10
    • 1970-01-01
    • 2014-09-25
    • 2015-10-01
    相关资源
    最近更新 更多