zoukankan      html  css  js  c++  java
  • python的timedelta

    两个日期之差:

    >>> tt=datetime.datetime.strptime("2013-10-11",'%Y-%m-%d')
    >>> print tt
    2013-10-11 00:00:00
    >>> tt1=datetime.datetime.strptime("2013-10-13",'%Y-%m-%d')
    >>> print tt1
    2013-10-13 00:00:00
    >>> print tt1-tt
    2 days, 0:00:00
    >>> print (tt1-tt).days
    2

     

     

     

     

    当有人问你昨天是几号,是很容易就得到答案的,但当要计算出100天前是几号,就不那么容易得出了。而Pythondatetimetimedelta则可以轻松完成计算

    例如:

    import datetime

    (datetime.datetime.now() -datetime.timedelta(days = 100)).strftime("%Y-%m-%d")

    附:

    datetime模块定义了下面这几个类:

     

    datetime.date:表示日期的类,

    常用的属性有year, month, day

     

    datetime.time:表示时间的类,

    常用的属性有hour, minute, second, microsecond

     

    datetime.datetime:表示日期时间,

    datetime.timedelta:表示时间间隔,即两个时间点之间的长度

    datetime.tzinfo:与时区有关的相关信息

     

     

     

    获取当前时间,并通过字符串输出。

    格式为:%Y-%m-%d %H:%M:%S'

    datetime.datetime.now().strftime('%Y-%m-%d%H:%M:%S' )

     

    获取当前时间,但只保留日期

    datetime.datetime.now().date()

     

    将字符串转换为datetime类型

    输入字符串的格式为:'%Y-%m-%d'

    datetime.datetime.strptime(time,'%Y-%m-%d')

     

    附录:

    格式化符号汇总

    %a 星期几的简写 Weekday name,abbr.

    %A 星期几的全称 Weekday name,full

    %b 月分的简写 Month name,abbr.

    %B 月份的全称 Month name,full

    %c 标准的日期的时间串 Completedate and time representation

    %d 十进制表示的每月的第几天 Day ofthe month

    %H 24小时制的小时 Hour (24-hourclock)

    %I 12小时制的小时 Hour (12-hourclock)

    %j 十进制表示的每年的第几天 Day ofthe year

    %m 十进制表示的月份 Month number

    %M 十时制表示的分钟数 Minutenumber

    %S 十进制的秒数 Second number

    %U 第年的第几周,把星期日做为第一天(值从053Week number(Sunday first weekday)

    %w 十进制表示的星期几(值从06,星期天为0weekdaynumber

    %W 每年的第几周,把星期一做为第一天(值从053 Week number(Monday first weekday)

    %x 标准的日期串 Complete daterepresentation (e.g. 13/01/08)

    %X 标准的时间串 Complete timerepresentation (e.g. 17:02:10)

    %y 不带世纪的十进制年份(值从099Year numberwithin century

    %Y 带世纪部分的十制年份 Yearnumber

    %z%Z时区名称,如果不能得到时区名称则返回空字符。Name of time zone

    %% 百分号

     

    #! /usr/bin/python
    # coding=utf-8
     
    from datetime import datetime,timedelta
     
    """
    timedelta代表两个datetime之间的时间差
    """
    now = datetime.now()
    past = past = datetime(2010,11,12,13,14,15,16)
     
    timespan = now - past
    #这会得到一个负数
    past - now
    attrs = [
    ("days",""),( 'seconds',""),( 'microseconds',"毫秒")
    #('min',"最小"),( 'max',"最大"),
    ]
    for k,v in attrs:
        "timespan.%s = %s #%s" % (k,getattr(timespan, k),v)
     
    """
    总共相差的秒数
    """
    timespan.total_seconds()
     
    """
    实例化一个timespan
    请注意它的参数顺序
    timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
    """
    timespan = timedelta(days=1)
    now - timespan #返回的是datetime
    now + timespan
     
    timespan * 2 #还可以乘哦。代表二倍
    timespan / 13
     
    #增加一个月
    from calendar import monthrange
    now + timedelta(days=monthrange(start.year,start.month)[1])
  • 相关阅读:
    Appium 服务关键字(转)
    android自动化之appium的环境搭建
    关于性能测试几个名词概念的说明
    关于.net服务启动注册到zookeeper,但是注册节点20分钟自动消失解决办法
    关于tomcat启动报“this web application instance has been stopped already”的处理
    loadrunner在win10破解提示:Cannot save the license information because acceses to the registry is denied的解决办法
    Teamcity部署.net服务“无法连接到远程服务器”解决方式
    数据库主从不同步问题随笔
    eclipse 常用快捷键
    在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205704.html
Copyright © 2011-2022 走看看