• 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')
  • 相关阅读:
    转+更新 .NET中实践TDD
    解决方案:.net 4.0 下 Virtual Directory下如何部署一个作为Virtual Directory的Web Service
    knockout.js在线教程
    asp.net viewstate的最新理解
    转:什么是DIP、IoC、DI
    Common Infrastructure Libraries for .NET(1)Common.Logging Framework
    用Quartz.NET实现任务调度
    Common Infrastructure Libraries for .NET(2)ELMAH
    webots自学笔记(一)软件界面和简单模型仿真
    hdu 1753 大明A+B
  • 原文地址:https://www.cnblogs.com/xiaohai2003ly/p/8671124.html
Copyright © 2020-2023  润新知