生成随机日期(时间)。

radar的Python项目详细描述


随机生成日期。

先决条件

  • Python2.6.8+,2.7.+,3.3.+

安装

从pypi安装最新稳定版本:

$ pip install radar

或者从BitBucket安装最新的稳定版本:

$ pip install -e hg+https://bitbucket.org/barseghyanartur/radar@stable#egg=radar

或者从github安装最新的稳定版本:

$ pip install -e git+http://github.org/barseghyanartur/radar@stable#egg=radar

用法和示例

基本用法

>>> import radar
>>> radar.random_datetime()
datetime.datetime(2013, 5, 24, 16, 54, 52)

指定日期范围

您可以传递datetime.datetimedatetime.date对象:

>>> import datetime
>>> import radar
>>> radar.random_date(
>>>     start = datetime.datetime(year=2000, month=5, day=24),
>>>     stop = datetime.datetime(year=2013, month=5, day=24)
>>> )
datetime.date(2012, 12, 31)

您也可以传递字符串:

>>> radar.random_datetime(start='2012-05-24T00:00:00', stop='2013-05-24T23:59:59')
datetime.datetime(2013, 4, 18, 17, 54, 6)

生成随机时间

>>> radar.random_time(start='2012-01-01T00:00:00', stop='2012-01-01T23:59:59')
datetime.time(11, 33, 59)

高级使用

传递字符串时,默认情况下radar使用python-dateutil包来分析日期。的日期分析器 dateutil包相当重,尽管hogh非常聪明。作为替代方案,radar带有自己的解析器 radar.utils.parse,它更轻(比dateutil快5倍)。

使用内置解析器:

>>> radar.random_datetime(start='2012-05-24T00:00:00', stop='2013-05-24T23:59:59', parse=radar.utils.parse)
datetime.datetime(2012, 11, 10, 15, 43, 40)

内置解析器使用radar.defaults.FORMATS

中指定的格式分析日期
>>> start = radar.utils.parse('2012-01-01')
datetime.datetime(2012, 1, 1, 0, 0)
>>> stop = radar.utils.parse('2013-01-01')
datetime.datetime(2013, 1, 1, 0, 0)

如果要添加更多格式,请定义自己的格式,并将其提供给内置解析器:

>>> MY_FORMATS = (
>>>     ("%d-%m-%YT%H:%M:%S", True),
>>>     ("%d-%m-%Y", False)
>>> )
>>>
>>> def my_parse(timestamp):
>>>     return radar.utils.parse(timestamp, formats=MY_FORMATS)
>>>
>>> radar.random_datetime(start='24-05-2012T00:00:00', stop='24-05-2013T23:59:59', parse=my_parse)
datetime.datetime(2012, 11, 10, 15, 43, 40)

一般注释

如果您希望在从字符串生成随机日期时使用非常奇怪的日期格式,那么您可能需要考虑 安装奇妙的python dateutil包。

当生成数千个对象(使用dateutil或内置解析器)时,建议您将日期范围传递为 datetime.datetimedatetime.date对象,而不是传递字符串(解析需要时间)。

一个很好的例子:

>>> start = radar.utils.parse('2000-01-01')
>>> stop = radar.utils.parse('2013-12-31')
>>> for i in xrange(1000000):
>>>     radar.random_datetime(start=start, stop=stop)

有关基准测试和更多示例,请参见https://bitbucket.org/barseghyanartur/radar/src(example)目录。

许可证

gpl 2.0/lgpl 2.1

支架

如有任何问题,请通过作者部分中提供的电子邮件与我联系。

作者

艺术酒吧<;artur.barseghyan@gmail.com>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过jamod读取控制器的输入状态?   java Back bean方法在使用两个h的单一表单时未调用:selectonemenus和command button   mockitojava中的单元测试Mock继承方法   java在不传递到构造函数的情况下,将一个类的实例使用到另一个类中的最佳方法是什么   java Spring MVC:如何通过API在Dozer的toplevel字段中允许空值?   java hibernate到MSSQL服务器的连接被拒绝:连接   java动态调用现有变量   在java中扩展多个类的泛型   java使用JNA Ptrace获取linux中外部进程的信息?   eclipse获取Java项目中所有构建错误的最快方法是什么?   java将动态数组拆分为多个数组   java安卓:将json保存到sqlite   java获取最近时间Android   java如何为多对多关联编写HQL查询?   java Docker compose for mysql和spring应用程序拒绝访问   java查找数组(如果它是另一个数组的子集)   java如何在另一个具有相同数据类型参数的泛型类(或接口)中使用泛型类(或接口),而无需强制转换   Apache POI java。lang.NoClassDefFoundError:org/apache/commons/compress/utils/InputStreamStatistics   java使用Jackson将JSON反序列化为异构元素列表   使用MapReduce实现java规范化