生成随机日期(时间)。
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.datetime或datetime.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.datetime或datetime.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
支架
如有任何问题,请通过作者部分中提供的电子邮件与我联系。