zoukankan      html  css  js  c++  java
  • Python 时间处理

    Python 时间处理

    一共有三个时间模式。date(), time(), datetime()。此外还有处理时间间隔的timedelta()

    获取当前

    import datetime
    datetime.date.today() # 今天的日期
    dateitme.datetime.now() # 此刻的时间
    

    注意,以上两个返回的类型是date类型datetime类型,而不是字符串。如果要返回字符串,则需要进行格式化。

    datetime.date(2019, 5, 16)
    datetime.datetime(2019, 5, 16, 12, 10, 49, 766690)

    格式化

    [sin(x)=ax^2+frac{a}{b}+1 ]

    格式化输出一般有两种,一是通过.strftime()进行格式化。而是使用ISO的格式。

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

    Y, m, d, H, M, S均有特定含义。这和print()中的格式化输出很像。

    datetime.datetime.now()
    

    使用的是ISO的格式。

    '2019-05-16T11:56:33.151694'

    时间戳

    时间戳是指格林威治时间1970年1月1日0时0分0秒到此刻的总秒数

    两个问题:

    • 千年虫问题。一些程序员会把1986这样的年份,记为86
    • 2038问题。32位计算机最多存储到40亿,到2038年左右,秒数将超过40亿。于是使用32位时间戳的计算机会溢出。

    两个方法:

    • timetuple() 把日期时间转换成struct_time格式。
    • 再使用time.mktime()转成时间戳
    today = datetime.date.today()
    today.timetuple()
    

    time.struct_time(tm_year=2019, tm_mon=5, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=136, tm_isdst=-1)

    以上时间的格式就是struct_time

    time.mktime(today.structtuple())
    

    1557936000.0

    这个值就是秒数

    时间段(计算)

    前几节所有介绍的都是关于时间点, 时间点之间可以相减,得到时间段。

    today = datetime.datetime.now() # 获取当前日期时间
    yesterday  = today - datetime.timedelta(days=1)
    
    # 减去一天的时间间隔
    

    同样timedelta() 还可以指定 hours等参数

  • 相关阅读:
    EF架构~系列目录
    不谈技术~做一个好人,一个简单的人
    不谈技术~谈人生,干吧,年轻人!
    c++ 用lambda删除vector中元素
    转:我们为什么这么容易受骗?
    windows 数据类型
    《暗时间》书摘 “学习与思考”
    转:斯托克代尔悖论与底线思考法
    Android之HelloWorld
    win7搭建android开发环境
  • 原文地址:https://www.cnblogs.com/heenhui2016/p/10890792.html
Copyright © 2011-2022 走看看