内置时间日期模块:time 和 datetime

  内置模块:
  时间模块:time 和 datetime
  
  time
  
  1. 时间戳:就是秒数:   
  >>> time.time()     #返回当前时间的时间戳(每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。)
  1529587130.3731368
  >>>
  
  2. 格式化的时间字符串:
   strftime()).
   Commonly used format codes:
   %Y  Year with century as a decimal number.
   %m  Month as a decimal number [01,12].
   %d  Day of the month as a decimal number [01,31].
   %H  Hour (24-hour clock) as a decimal number [00,23].
   %M  Minute as a decimal number [00,59].
   %S  Second as a decimal number [00,61].
   %z  Time zone offset from UTC.
   %a  Locale's abbreviated weekday name.
   %A  Locale's full weekday name.
   %b  Locale's abbreviated month name.
   %B  Locale's full month name.
   %c  Locale's appropriate date and time representation.
   %I  Hour (12-hour clock) as a decimal number [01,12].
   %p  Locale's equivalent of either AM or PM.
 
   
   time.strftime将元组格式的时间,转化格式化输出:
   
   time.strftime("%Y-%m-%d %H:%M:%S".time.localtime())
   >>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
   '2018-06-21 22:09:21'
   time.strptime将格式化的输出转化为元组格式的时间:
   
   >>> time.strptime('2018-06-21 22:09:21', "%Y-%m-%d %H:%M:%S")
   time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=9, tm_sec=21, tm_wday=3, tm_yday=172, tm_isdst=-1)
   >>>
   >>>
  
   最简单的获取可读的时间模式的函数是asctime()
   asctime()           #将元组格式转化成一个格式:
   >>> time.asctime(time.localtime())
   'Thu Jun 21 22:26:46 2018'
   >>> time.asctime(time.localtime(1529587130.3731368))
   'Thu Jun 21 21:18:50 2018'
   >>>
   >>> time.ctime()         #将时间戳格式转化为一个格式
   'Thu Jun 21 22:30:05 2018'
  
  >>> time.timezone
  -28800
  >>> time.timezone /3600
  -8.0
  >>>
  
  
  time.sleep(x)   睡几秒!
  >>> time.time()
  1529589195.338138
  
  将时间戳转化为UTC的元组格式的时间;
  >>> time.gmtime(1529589195.338138)
  time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=13, tm_min=53, tm_sec=15, tm_wday=3, tm_yday=172, tm_isdst=0)
  >>> time.gmtime()   无参数就是当前时间,转化为UTC的标准时间
  time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=13, tm_min=53, tm_sec=59, tm_wday=3, tm_yday=172, tm_isdst=0)
  >>>
  
  将时间戳转化为UTC的元组格式的时间;
  >>> time.localtime()     无参数将当前时间戳转化为当前时间
  time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=21, tm_min=55, tm_sec=18, tm_wday=3, tm_yday=172, tm_isdst=0)
  >>>
  >>> time.localtime(1529589195.338138)
  time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=21, tm_min=53, tm_sec=15, tm_wday=3, tm_yday=172, tm_isdst=0)
  >>>
  取属性:
  >>> time.localtime()
  time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=0, tm_sec=16, tm_wday=3, tm_yday=172, tm_isdst=0)
  >>> x = time.localtime()
  >>> x.tm_year
  2018
  >>> x.tm_hour
  22
  将元组格式的时间转化为时间戳格式:
  time.mktime()
  
  >>> time.localtime()
  time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=0, tm_sec=16, tm_wday=3, tm_yday=172, tm_isdst=0)
  >>> x = time.localtime()
  >>> time.mktime(x)
  1529589618.0
  
  
  
  3. 元组(struct_time)共9个元素:
  
   >>> time.localtime()     等于:time.localtime(time.time())
   time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=21, tm_min=23, tm_sec=10, tm_wday=3, tm_yday=172, tm_isdst=0)
   >>>
   tm_year   2008
   tm_mon   1 到 12
   tm_mday   1 到 31
   tm_hour   0 到 23
   tm_min   0 到 59
   tm_sec   0 到 61 (60或61 是闰秒)
   tm_wday   0 到 6  (0是周一)
   tm_yday   1 到 366(儒略历)
   tm_isdst  -1, 0, 1, -1是决定是否为夏令时的旗帜
  
  
   python中时间日期格式化符号:
   %y   两位数的年份表示(00-99)
   %Y   四位数的年份表示(000-9999)
   %m   月份(01-12)
   %d   月内中的一天(0-31)
   %H   24小时制小时数(0-23)
   %I   12小时制小时数(01-12)
   %M   分钟数(00=59)
   %S   秒(00-59)
   %a   本地简化星期名称
   %A   本地完整星期名称
   %b   本地简化的月份名称
   %B   本地完整的月份名称
   %c   本地相应的日期表示和时间表示
   %j   年内的一天(001-366)
   %p   本地A.M.或P.M.的等价符
   %U   一年中的星期数(00-53)星期天为星期的开始
   %w   星期(0-6),星期天为星期的开始
   %W   一年中的星期数(00-53)星期一为星期的开始
   %x   本地相应的日期表示
   %X   本地相应的时间表示
   %Z   当前时区的名称
   %%   %号本身 
   
   
 
 
 datetime
   1.获取当前的时间:datetime.datetime.now()
   >> import datetime
   >>> datetime.datetime.now()
   datetime.datetime(2018, 6, 21, 22, 33, 34, 397472)
   >>>
   前一小时
   d1 = now - datetime.timedelta(hours=1)
   print d1.strftime("%Y-%m-%d %H:%S:%M")
   
   前一天
   d2 = now - datetime.timedelta(days=1)
   print d2.strftime("%Y-%m-%d %H:%S:%M")
   
   上周日
   d3 = now - datetime.timedelta(days=now.isoweekday())
   print d3.strftime("%Y-%m-%d %H:%S:%M"), " ", d3.isoweekday()
   
   上周一
   d31 = d3 - datetime.timedelta(days=6)
   print d31.strftime("%Y-%m-%d %H:%S:%M"), " ", d31.isoweekday()
   
   上个月最后一天
   d4 = now - datetime.timedelta(days=now.day)
   print d3.strftime("%Y-%m-%d %H:%S:%M")
   
   上个月第一天
    print datetime.datetime(d4.year, d4.month, 1)  
原文地址:https://www.cnblogs.com/brace2011/p/9226344.html