• 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

    朝闻道
  • 相关阅读:
    04、Unity_声音管理器
    StreamingAssets文件夹的读取异常
    Unity做360度的全景照片
    07.C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
    03、三种简单的计时器
    02、在层级未知情况下通过递归查找子物体
    Java中请优先使用try-with-resources而非try-finally
    Redis——入门学习笔记
    KafKa——学习笔记
    SpringBoot——学习笔记
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8486991.html
Copyright © 2020-2023  润新知