【问题标题】:Generate a random ISO8601 date with python?用python生成一个随机的ISO8601日期?
【发布时间】:2014-08-11 15:01:50
【问题描述】:

我已经看到如何从 ISO 格式的日期(例如 2007-01-14T20:34:22+00:00)转换为使用 python 的更易读的格式 datetime

有没有一种简单的方法可以为datetime 字符串生成类似于this answer随机 ISO8601 日期

【问题讨论】:

    标签: python datetime iso8601


    【解决方案1】:

    我建议使用这个Faker 库。

    pip install faker
    

    它是一个包,可让您生成各种随机的“假”数据集。使用下面的Faker 会生成一个随机的datetime 对象,然后您可以使用datetime.datetime.isoformat 方法将其转换为ISO8601 字符串格式。

    import faker
    
    fake = faker.Faker()
    rand_date = fake.date_time()  # datetime(2006, 4, 30, 3, 1, 38)
    rand_date_iso = rand_date.isoformat()  # '2006-04-30T03:01:38'
    

    【讨论】:

      【解决方案2】:
      1. 确定您希望随机日期落在哪个范围内。
      2. startend 整数形式计算这些日期的时间戳(自 unix 纪元以来的秒数)。
      3. 使用random.randrange(start, end)startend 时间戳之间选择一个随机数。
      4. 使用datetime.fromtimestamp()将此随机整数转换为日期时间
      5. 将日期时间更改为您想要的任何输出格式。

      【讨论】:

        【解决方案3】:

        如果您只想生成一个随机日期,您可以将其生成为ISO8601 的正确格式:

        import random
        
        iso_format = "{Year}-{Month}-{Day}T{Hour}:{Minute}+{Offset}"
        
        year_range = [str(i) for i in range(1900, 2014)]
        month_range = ["01","02","03","04","05","06","07","08","09","10","11","12"]
        day_range = [str(i).zfill(2) for i in range(1,28)]
        hour_range = [str(i).zfill(2) for i in range(0,24)]
        min_range = [str(i).zfill(2) for i in range(0,60)]
        offset = ["00:00"]
        
        argz = {"Year": random.choice(year_range),
                "Month": random.choice(month_range),
                "Day" : random.choice(day_range),
                "Hour": random.choice(hour_range),
                "Minute": random.choice(min_range),
                "Offset": random.choice(offset)
                }
        
        print iso_format.format(**argz)
        

        如果您想确保日期有效,则需要更改此项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-25
          • 1970-01-01
          • 2013-05-10
          • 2014-09-25
          • 2010-10-07
          • 2012-05-25
          相关资源
          最近更新 更多