zoukankan      html  css  js  c++  java
  • python datetime学习

    Python中处理时间的模块datetime, 这个模块里包含的类也叫datetime,所以要使用需要先import

    from datetime import datetime

    获取当前日期和时间 datetime

    datetime.now()  # 输出结果是当前的日期和时间 

    timestamp是时间戳

    以1970年1月1日 00:00:00 UTC+00:00为标准时间

    timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00

    其他地方的时间需要加上时区,如北京的时间如下:

    timestamp = 0 = 1970-1-1 08:00:00 UTC+8:00

     timestamp转换成时间时会自动转换到当地的时区

    timestamp()方法可以把datetime类型转换成timestamp

    datetime.now().timestamp  # 1429417200.0

     timestamp也可以转换成datetime, 通过datetime.fromtimestamp()方法

    datetime.fromtimestamp(1429417200.0)  # 2015-04-19 12:20:00

     本地时间转换成UTC时间

    本地时间是指系统设定时区的时间,例如北京时间是UTC+8:00时区的时间,而UTC时间指UTC+0:00时区的时间。

    要使用tzinfo就需要引入timezone这个类

    from datetime import timezong

    比如:想到把北京时间转换成UTC时间

    datetime.now().replace(tzinfo=timezone(timedelta(hours=8)))

    timedelta()方法可以用来加减时间,参数可以是days, hours, ....

    str转换为datetime

    >>> 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

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

    实例:

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

    # _*_ coding:utf-8 _*_
    from datetime import datetime, timedelta, timezone
    import re


    def to_timestamp(dt_str, tz_str):
    dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
    tz = re.match(r'(UTC)([-+])([d]+)', tz_str).groups()
    if tz[1] == '-':
    dtstamp = dt.replace(tzinfo=timezone(timedelta(hours=-int(tz[2]))))
    else:
    dtstamp = dt.replace(tzinfo=timezone(timedelta(hours=int(tz[2]))))
    return dtstamp.timestamp()
    print(dtutcstamp)
    return dtutcstamp


    # test
    t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+07:00')
    assert t1 == 1433121030.0, t1

    t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')
    assert t2 == 1433121030.0, t2
    print('ok')
  • 相关阅读:
    Power BI性能提升的5大秘密武器
    释放低代码小宇宙,微软 Power Platform 震撼来袭!
    浅谈数据仓库建设中的数据建模方法
    微软连续13年被评为Gartner 2020年分析和BI平台魔力象限的领导者
    Power BI 演示新玩法:幻灯片播放
    DAX中按列排序的另一种结果
    Power BI能否做帕累托分析
    2018 ,请领取您Power BI 年终报告
    DAX和Power BI中的参考日期表
    Microsoft宣布为Power BI提供AI模型构建器,关键驱动程序分析和Azure机器学习集成
  • 原文地址:https://www.cnblogs.com/xiaohai2003ly/p/8671124.html
Copyright © 2011-2022 走看看