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

    import time
    import datetime
    import os
    
    #获取当前时间戳
    time.time()
    
    #将时间戳转换为struct_time 时间
    print(time.localtime())
    print(time.localtime(1513651681))
    
    #将struct_time 时间转换成时间戳
    print(time.mktime(time.localtime()))
    
    #将struct_time 时间转换成字符串
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
    
    #将字符串转换成struct_time 时间
    print(time.strptime('2017-10-10 15:13:12','%Y-%m-%d %H:%M:%S'))
    
    #获取文件创建时间
    print(os.path.getctime('deg.py'))      #得到时间戳
    print(time.localtime(os.path.getctime('deg.py')))  #时间戳转成struct_time
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(os.path.getctime('deg.py'))))   #时间戳转成struct_time 在转成字符串
    
    #获取文件访问时间
    print(os.path.getatime('deg.py'))
    
    #获取文件修改时间
    print(os.path.getmtime('deg.py'))
    
    #得到当前日期
    print(datetime.date.today(),type(datetime.date.today()))  # 日期格式datetime.date
    
    #得到当前时间
    
    print(datetime.datetime.now(),type(datetime.datetime.now()))  # 日期时间格式
    
    #得到当前时间struct_time 格式
    print(datetime.datetime.now().timetuple(),type(datetime.datetime.now().timetuple()))  # struct_time 格式
    
    #得到当前时间struct_time 格式转化成时间戳
    print(time.mktime(datetime.datetime(2017,12,12,11,26,26).timetuple()))
    
    #时间戳转换为日期
    a=time.mktime(datetime.datetime(2017,12,12,11,26,26).timetuple())
    datetime.datetime.fromtimestamp(a)    #datetime.datetime(2017, 12, 12, 11, 26, 26)
    
    #指定日期
    datetime.date(2017,10,10)
    
    #指定日期时间
    
    datetime.datetime(2017,10,10,12,13,16)
    
    #日期转换为字符串
    datetime.datetime(2017,10,10,12,13,16).strftime('%Y-%m-%d %H:%M:%S')   #'2017-10-10 12:13:16'
    
    #字符串转换为日期
    datetime.datetime.strptime('2017-10-10 12:13:16','%Y-%m-%d %H:%M:%S')   #datetime.datetime(2017, 10, 10, 12, 13, 16)
    
    #datetime.timedelta
    
    #前一小时
    
    #前一天
    
    #后三天
    
    datetime.datetime.now() - datetime.timedelta(hours = 1)
    #datetime.datetime(2017, 12, 19, 11, 55, 41, 284443)
    datetime.datetime.now() - datetime.timedelta(hours = -1)
    #datetime.datetime(2017, 12, 19, 13, 56, 35, 542420)
    
    datetime.datetime.now() - datetime.timedelta(days = -1)
    #datetime.datetime(2017, 12, 20, 12, 56, 44, 944484)
    
    datetime.datetime.now() - datetime.timedelta(days = 1)
    #datetime.datetime(2017, 12, 18, 12, 56, 49, 300419)
    
    datetime.datetime.now() - datetime.timedelta(minutes = 10)
    #datetime.datetime(2017, 12, 19, 12, 47, 5, 457422)
    

     结果:

    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=19, tm_hour=12, tm_min=58, tm_sec=32, tm_wday=1, tm_yday=353, tm_isdst=0)
    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=19, tm_hour=10, tm_min=48, tm_sec=1, tm_wday=1, tm_yday=353, tm_isdst=0)
    1513659512.0
    2017-12-19 12:58:32
    time.struct_time(tm_year=2017, tm_mon=10, tm_mday=10, tm_hour=15, tm_min=13, tm_sec=12, tm_wday=1, tm_yday=283, tm_isdst=-1)
    1511856946.5942597
    time.struct_time(tm_year=2017, tm_mon=11, tm_mday=28, tm_hour=16, tm_min=15, tm_sec=46, tm_wday=1, tm_yday=332, tm_isdst=0)
    2017-11-28 16:15:46
    1511857233.4906693
    1511857233.4906693
    2017-12-19 <class 'datetime.date'>
    2017-12-19 12:58:32.463455 <class 'datetime.datetime'>
    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=19, tm_hour=12, tm_min=58, tm_sec=32, tm_wday=1, tm_yday=353, tm_isdst=-1) <class 'time.struct_time'>
    1513049186.0
    

    ###### python 得到前一个月的时间. 或得两个时间差的秒

     dt = datetime.datetime.now()
     date_n_days_ago = datetime.date(dt.year,dt.month - 1, dt.day)       #一个月前的日期

    dt1  = datetime.datetime(dt.year,dt.month - 1, dt.day)                        #一个月前的日期时间

     (dt - dt1).seconds                                                                              #两个datetime 类型相减得到类型 datetime.timedelta(31, 62855, 171354)

    ##########  datetime.timedelta 类的使用方法

    两个datetime.datetime类型相减 或两个 datetime.date类型相减 的结果就是datetime.timedelta类型

    函数原型: 
    class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]) 
    从构造函数的定义中可以看出,所有参数都是可选的,并且默认都是0。参数的值可以是整数,浮点数,正数或负数。timedelta也有自己的一些属性和方法,可以通过dir(datetime.timedelta)查看。针对时间存储,timedelta内部只能存储days,seconds,microseconds,其他参数的值会自动按如下规则进行转换: 
    1 millisecond(毫秒)转换成 1000 microseconds(微秒) 
    1 minute 转换成 60 seconds 
    1 hour 转换成 3600 seconds

    1 week转换成 7 days

    >>> a = datetime.timedelta(days=1,microseconds=100,seconds=10)
    >>> a
    datetime.timedelta(1, 10, 100)
    >>> a.days
    1
    >>> a.seconds
    10

    >>> a = datetime.timedelta(hours = 1)
    >>> a
    datetime.timedelta(0, 3600)
    >>> a.days
    0
    >>> a.seconds
    3600
    >>> a.microseconds
    0

    ####Linux date 命令

    一天前的时间:

    date -d '1 day ago' +"%Y-%m-%d %H:%M:%S" 

    date -d '-1 day' 

    一个月前时间:

    date +%Y%m%d --date="+1 day" //显示后一天的日期
    date +%Y%m%d --date="-1 day" //显示前一天的日期
    date +%Y%m%d --date="-1 month" //显示上一月的日期
    date +%Y%m%d --date="+1 month" //显示下一月的日期
    date +%Y%m%d --date="-1 year" //显示前一年的日期
    date +%Y%m%d --date="+1 year" //显示下一年的日期 

    得到当前日期时间戳:

    date +"%s"

    得到指定日期时间戳:

    date -d '2018-03-03 11:12:13'  +"%s"

    时间戳转日期

    date -d @12328989

    设置时间的命令

    date -s "2018-05-05 12:13:15" 

    https://www.cnblogs.com/hunttown/p/5470527.html

  • 相关阅读:
    VLOOKUP函数的使用方法(进阶篇)
    VLOOKUP函数的使用方法(初级篇)
    VLOOKUP函数的使用方法(入门级)
    Linq in查询
    JS,Jquery,Ajax,Json,Xml,Html,CSS帮助文档
    发布网站到IIS
    SQL小问题总结
    SQLHelper
    table显示内边框
    迷茫的生活
  • 原文地址:https://www.cnblogs.com/mao3714/p/8065020.html
Copyright © 2011-2022 走看看