分享一个并没有什么卵用的 Python 库: PyTime - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sinux
V2EX    Python

分享一个并没有什么卵用的 Python 库: PyTime

  •  3
     
  •   sinux 2015-05-15 21:26:33 +08:00 5871 次点击
    这是一个创建于 3804 天前的主题,其中的信息可能已经有所发展或是发生改变。

    (其实就是厚着脸皮来求Star的, 噗)

    仓库地址:https://github.com/shnode/PyTime

    安装:

    pip install pytime 

    主要作用就是通过字符串的方法操纵时间戳,以及不规则的datetime string的规则化。

    >>>from pytime import pytime >>> >>>pytime.before('2015.5.17', '2years 3mon 3d 2hr' ) datetime.datetime(2013, 2, 13, 22, 0) >>> >>>pytime.after(pytime.tomorrow(), '23month3dy29minu') datetime.datetime(2017, 4, 19, 0, 29) 

    随包附赠了西方节日和常用的时间段,x时间之前,x时间之后等方便写脚本的时候计算时间。

    在test并没有完全覆盖(明明是基本不覆盖,摔)以及代码还很粗糙的情况下,我还是上了包管理...

    总之欢迎star ,fork , 提意见,pull request, 推荐工作,搞基,介绍女朋友之类啦()

    第 1 条附言    2015-05-16 20:36:02 +08:00
    测试已经覆盖了!增加了某一天的上个星期,下个月之类的东西啦,仍然是字符串和时间戳都接受的,更方便写脚本和(伪)自动化运维啦。
    第 2 条附言    2015-05-16 20:44:41 +08:00
    被Python Trending 捕获到并发到官推上啦:)


    第 3 条附言    2015-05-16 22:27:02 +08:00
    已经进入 Awesome-python 的Date and Time区域。(https://github.com/vinta/awesome-python#date-and-time )
    33 条回复    2015-05-17 18:46:12 +08:00
    R4rvZ6agNVWr56V0
        1
    R4rvZ6agNVWr56V0  
       2015-05-15 21:34:45 +08:00   1
    顶 标题
    viko16
        2
    viko16  
       2015-05-15 21:43:00 +08:00   1
    顶 自带吐槽
    redf
        3
    redf  
       2015-05-15 21:45:44 +08:00   1
    不错
    kqz901002
        4
    kqz901002  
       2015-05-15 21:46:24 +08:00   1
    顶头像
    redf
        5
    redf  
       2015-05-15 21:46:53 +08:00
    哦,对了,看下我的帖子...
    HanSonJ
        6
    HanSonJ  
       2015-05-15 21:48:12 +08:00   1
    看标题就有种预感,进来一看果然,我也写了这个一个,不过用的是golang

    https://github.com/Hanccc/timeutil
    rrfeng
        7
    rrfeng  
       2015-05-15 22:15:56 +08:00   1
    bash 下的 date 就很棒可以照着完成以下……
    LeoQ
        8
    LeoQ  
       2015-05-15 22:29:34 +08:00   1
    已star

    @rrfeng 同意
    HowardMei
        9
    HowardMei  
       2015-05-15 23:04:38 +08:00   1
    你在哪儿?要是在新加坡,我给你介绍女朋友,搞Java的萌妹子 xD
    Mirana
        10
    Mirana  
       2015-05-15 23:15:11 +08:00   1
    把舌头捋直再来
    staticor
        11
    staticor  
       2015-05-16 07:45:15 +08:00   1
    分享另一个 datetime的 https://github.com/crsmithdev/arrow
    jas0ndyq
        12
    jas0ndyq  
       2015-05-16 08:11:33 +08:00 via iPhone
    不错
    sinux
        13
    sinux  
    OP
       2015-05-16 09:33:46 +08:00
    @staticor arrow 和 dateutil 用的很多了,还有 pytimeparse我也看了,代码质量和时间的精度(尤其是在time的秒的阶段)自然都是水准很高的,而且pytimeparse全程使用正则,我是正则和字符串匹配混用的,哈哈,还是感谢支持:)
    msg7086
        14
    msg7086  
       2015-05-16 11:49:09 +08:00
    Rails用户表示,下面这种写法已经能满足大多数需要了……
    (2.years + 3.months + 3.days + 2.hours).from_now #=> 2017-08-18 22:46:11 -0700
    sinux
        15
    sinux  
    OP
       2015-05-16 11:59:34 +08:00
    @msg7086 Rails萌萌哒,然而Python没有这种方法...days以下可以用timedelta赋值之后加减,months和years要用正常 的加减之后,再replace时间戳里地数值,并且有年和月的进退位不是平滑的。
    msg7086
        16
    msg7086  
       2015-05-16 12:02:25 +08:00
    @sinux 本来想说能不能在pyton里也实现这样的功能。但是一想,python里的整数好像不是对象?
    sinux
        17
    sinux  
    OP
       2015-05-16 12:09:40 +08:00
    @msg7086 是对象的:)
    msg7086
        18
    msg7086  
       2015-05-16 12:16:42 +08:00
    @sinux 呃,那为啥没人搞1.days.ago?是因为类不能修改?还是说有哲学意味在里面?
    LPeJuN6lLsS9
        19
    LPeJuN6lLsS9  
       2015-05-16 12:43:45 +08:00
    @msg7086 抱歉插句话……这样的话可能要MyInt(1).days.ago了,你说的用法是ruby的int自带还是rails提供的呢?如果是后者,py应该也可以按照类似方法修改int
    eepaul
        20
    eepaul  
       2015-05-16 13:03:46 +08:00
    顶标题,湖南人?
    sinux
        21
    sinux  
    OP
       2015-05-16 13:18:45 +08:00
    @eepaul 哈哈不是啊,何以见得
    eepaul
        22
    eepaul  
       2015-05-16 13:21:29 +08:00
    @sinux 没什么卵用 用得很好
    sinux
        23
    sinux  
    OP
       2015-05-16 13:53:42 +08:00
    @eepaul ...其实也并不是没有什么用,主要看有没有相关的需求。
    wolfan
        24
    wolfan  
       2015-05-16 14:10:06 +08:00 via Android
    我想找个可以合并音频文件的py库不知有么?
    msg7086
        25
    msg7086  
       2015-05-16 14:25:48 +08:00
    @hantsuki rails提供,不过直接插入了数值类 (或者说Numeric)
    类似
    class Numeric:
    def hours:
    ...
    这样。
    LPeJuN6lLsS9
        26
    LPeJuN6lLsS9  
       2015-05-16 14:57:35 +08:00   2
    sinux
        27
    sinux  
    OP
       2015-05-16 15:11:07 +08:00
    @wolfan 看到你说的是波形叠加...这个真不知道
    iloveayu
        28
    iloveayu  
       2015-05-16 22:50:42 +08:00
    这头像配这标题,莫名其妙戳中笑点。23333
    sinux
        29
    sinux  
    OP
       2015-05-16 23:21:37 +08:00
    @iloveayu ....
    knktc
        30
    knktc  
       2015-05-17 10:31:06 +08:00
    我要写issue的话就是提一个:可否出个中国版的,增加中国节假日,应用场景是某些计划任务的灵活调整(这个估计需要联网获取节假日信息了,有点脑洞了)
    mingyun
        31
    mingyun  
       2015-05-17 11:10:26 +08:00   span class="small fade"> 1
    star
    sinux
        32
    sinux  
    OP
       2015-05-17 13:53:56 +08:00
    @knktc 尝试写了农历,但是一直不准确,就放弃了。
    alexapollo
        33
    alexapollo  
       2015-05-17 18:46:12 +08:00
    嗯,看起来我也该写个easytime的库了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2901 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 14:17 PVG 22:17 LAX 07:17 JFK 10:17
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86