zoukankan      html  css  js  c++  java
  • 获取两个时间点间的随机时间&时间戳

    获取两个时间点间的随机时间&时间戳

    方案一

    # python2 不兼容,python3正常
    import datetime,random
    def randomtimes(start, end, n, frmt="%Y-%m-%d"):
        stime = datetime.datetime.strptime(start, frmt)
        etime = datetime.datetime.strptime(end, frmt)
        return [random.random() * (etime - stime) + stime for _ in range(n)]
    
    randomtimes('2018-06-01','2018-11-01',10)

     

    方案二

    import random
    import time
    from datetime import datetime
    
    def strTimeProp(start, end, prop, frmt):
        stime = time.mktime(time.strptime(start, frmt))
        etime = time.mktime(time.strptime(end, frmt))
        ptime = stime + prop * (etime - stime)
        return int(ptime)
    
    def randomTimestamp(start, end, frmt='%Y-%m-%d %H:%M:%S'):
        return strTimeProp(start, end, random.random(), frmt)
    
    def randomDate(start, end, frmt='%Y-%m-%d %H:%M:%S'):
        return time.strftime(frmt, time.localtime(strTimeProp(start, end, random.random(), frmt)))
    
    def randomTimestampList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'):
        return [randomTimestamp(start, end, frmt) for _ in xrange(n)]
    
    def randomDateList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'):
        return [randomDate(start, end, frmt) for _ in xrange(n)]
    
    start = '2018-06-02 12:12:12'
    end = '2018-11-01 00:00:00'
    lenth = 10
    print(randomTimestamp(start, end))
    print(randomDate(start,end))
    print(randomTimestampList(start, end, lenth))
    print(randomDateList(start, end, lenth))

    结果

    在这里插入图片描述

  • 相关阅读:
    C++实现按1的个数排序
    杨绛100岁感言
    体验电影演员后的自白
    安装Leanote极客范的云笔记
    Linux下SonarQube代码质量平台的安装和使用方法
    前端开发利器VSCode
    苏州一日游 有惊无险!
    setuptools安装和错误解决
    Linux pip安装使用
    Linux平台安装MongoDB
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/12204899.html
Copyright © 2011-2022 走看看