zoukankan      html  css  js  c++  java
  • datetime 模块

    datetime

    datetime是Python处理日期和时间的标准库。

    获取当前日期和时间:

    >>> from datetime import datetime
    >>> now = datetime.now() # 获取当前datetime
    >>> print(now)
    2015-05-18 16:28:07.198690

    datetime是模块,datetime模块还包含一个datetime类

     

    要指定某个日期和时间,直接用参数构造一个datetime:

    >>> from datetime import datetime
    >>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime
    >>> print(dt)
    2015-04-19 12:20:00


    timestamp 时间戳

    timestamp转换为datetime

    要把timestamp转换为datetime,使用datetime提供的fromtimestamp()方法:

    >>> from datetime import datetime
    >>> t = 1429417200.0
    >>> print(datetime.fromtimestamp(t))
    2015-04-19 12:20:00

     


    str转换为datetime

    通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

    >>> from datetime import datetime
    >>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
    >>> print(cday)
    2015-06-01 18:19:59

     

    datetime转换为str

    转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串:

    >>> from datetime import datetime
    >>> now = datetime.now()
    >>> print(now.strftime('%a, %b %d %H:%M'))
    Mon, May 05 16:28


    datetime加减

    加减可以直接用+和-运算符,不过需要导入timedelta这个类:

    >>> from datetime import datetime, timedelta
    >>> now = datetime.now()
    >>> now
    datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)
    >>> now + timedelta(hours=10)
    datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)
    >>> now - timedelta(days=1)
    datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)
    >>> now + timedelta(days=2, hours=12)
    datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)


    datetime表示的时间需要时区信息才能确定一个特定的时间,否则只能视为本地时间

     

    获取了用户输入的日期和时间如2015-1-21 9:01:30,以及一个时区信息如UTC+5:00,均是str,请编写一个函数将其转换为timestamp:


    import re
    from datetime import datetime, timezone, timedelta

    def to_timestamp(dt_str,tz_str):
    #str转换为datetime
    dt=datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S')
    #从正则表达式中提取出时区差值
    tz_hours=int(re.match(r'UTC[+-]{1}(d+):d{2}',tz_str).group(1))
    ## 创建时区UTC+tz_hours
    tz_utc=timezone(timedelta(hours=tz_hours))
    # 强制设置为UTC+tz_utc
    dt=dt.replace(tzinfo=tz_utc)
    return dt.timestamp() #返回timestamp

    朝闻道
  • 相关阅读:
    [原创]Office Word 2010如何使用printer drivers输出PostScript文件
    MATLAB启动时报错: pathdef.m not found 问题解决方法
    Ubuntu 下 Matlab R2010a 错误:`GLIBCXX_3.4.11' not found 的解决办法
    [转] 一阶导和二阶导的含义
    win7 搭建ftp 设置用户权限 远程访问设置
    Ubuntu 中软件的安装、卸载以及查看的方法总结
    64位ubuntu12.04 LTS安装oracle10g笔记
    如何在Ubuntu 12.04 LTS中使用低版本gcc/g++
    HTTP与HttpServlet
    EXP00091错误
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8486991.html
Copyright © 2011-2022 走看看