argparse的分析器相关时间

typedate的Python项目详细描述


https://circleci.com/gh/righ/typedate.svg?style=svg

要求

  • python 2.7版
  • python 3.3或更高版本
  • 使用2.7、3.7进行测试

安装

$ pip install typedate

类型

这个库提供3个类来解析字符串,并输出与时间相关的对象。

TypeDate:Date (and time) parser parses string. Time format, timezone and timedelta are specified when it is made.
TypeDelta:Delta parser parses numbers with time units separeted a space. It will be interpreted as delta function arguments.
TypeZone:Timezone parser parses timezone string.

用法

例如,使用带有argparse的类,如下所示:

#!/usr/bin/env pythonfromdatetimeimportdatetimefromtypedateimportTypeDate,TypeDelta,TypeZoneif__name__=='__main__':importargparseparser=argparse.ArgumentParser()# datetime parsingparser.add_argument("--datetime1",type=TypeDate('%Y%m%d'))parser.add_argument("--datetime2",type=TypeDate(timezone='Asia/Tokyo'))parser.add_argument("--datetime3",type=TypeDate(timezone='+09:00'))parser.add_argument("--datetime4",type=TypeDate(timedelta='1years -2months 3days 4hours 5minute 6seconds'))# timezone parsingparser.add_argument("--timezone1",type=TypeZone())parser.add_argument("--timezone2",type=TypeZone())parser.add_argument("--timezone3",type=TypeZone(callback=lambdatz:datetime(2018,7,14,tzinfo=tz)))# timedelta parsing## if python-dateutil installed, used automatically dateutil.relativedelta.relativedelta else datetime.timedelta.parser.add_argument("--defaultdelta",type=TypeDelta())## it can be specified by cls argument.fromdatetimeimporttimedeltafromdateutil.relativedeltaimportrelativedeltaparser.add_argument("--timedelta",type=TypeDelta(cls=timedelta))parser.add_argument("--relativedelta",type=TypeDelta(cls=relativedelta))args=parser.parse_args()print('datetime1:\t',args.datetime1,type(args.datetime1))print('datetime2:\t',args.datetime2,type(args.datetime2))print('datetime3:\t',args.datetime3,type(args.datetime3))print('datetime4:\t',args.datetime4,type(args.datetime4))print('timezone1:\t',args.timezone1,type(args.timezone1))print('timezone2:\t',args.timezone2,type(args.timezone2))print('dt with tz3:\t',args.timezone3,type(args.timezone3))print('defaultdelta:\t',args.defaultdelta,type(args.defaultdelta))print('timedelta:\t',args.timedelta,type(args.timedelta))print('relativedelta:\t',args.relativedelta,type(args.relativedelta))

将上述文件保存为command.py,并按如下方式执行。

$ python command.py \
  --datetime1='19880522'\
  --datetime2='2016-01-01'\
  --datetime3='2016/01/01'\
  --datetime4='01/01 00:00 2016'\
  --timezone1='-0500'\
  --timezone2='Asia/Tokyo'\
  --timezone3='04:00'\
  --defaultdelta='1years -2months 3days 4hours 5minutes 6seconds'\
  --timedelta='3days 4hours 5minutes 6seconds'\
  --relativedelta='1years -2months 3days 4hours 5minutes 6seconds'

datetime1:       1988-05-22 00:00:00 <class 'datetime.datetime'>
datetime2:       2016-01-01 00:00:00+09:00 <class 'datetime.datetime'>
datetime3:       2016-01-01 00:00:00+09:00 <class 'datetime.datetime'>
datetime4:       2016-11-04 04:05:06 <class 'datetime.datetime'>
timezone1:       -05:00 <class 'typedate.type.zone.TzInfo'>
timezone2:       Asia/Tokyo <class 'pytz.tzfile.Asia/Tokyo'>
dt with tz3:     2018-07-14 00:00:00+04:00 <class 'datetime.datetime'>
defaultdelta:    relativedelta(years=+1, months=-2, days=+3, hours=+4, minutes=+5, seconds=+6) <class 'dateutil.relativedelta.relativedelta'>
timedelta:       3 days, 4:05:06 <class 'datetime.timedelta'>
relativedelta:   relativedelta(years=+1, months=-2, days=+3, hours=+4, minutes=+5, seconds=+6) <class 'dateutil.relativedelta.relativedelta'>

历史记录

1.1.x

向每种类型添加了回调参数。

它可以使用原始值返回其他值。

1.0.x

  • 首次发布

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

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局