zoukankan      html  css  js  c++  java
  • python 之日期时间处理

    ##python时间操作一般使用time、datetime两个模块

    对于time模块,时间的表示模式有3种
    1、时间戳:time.time()
    2、字符串: time.strftime('%Y%m%d')
    3、struct_time格式: time.localtime()

    如下所示:

     1 #时间操作
     2 >>> import time
     3 >>> time.time()
     4 1450336566.81052
     5 >>> time.localtime()
     6 time.struct_time(tm_year=2015, tm_mon=12, tm_mday=17, tm_hour=15, tm_min=16, tm_sec=14, tm_wday=3, tm_yday=351, tm_isdst=0)
     7 >>> time.strftime('%Y%m%d %H%M%S')
     8 '20151217 151632'
     9 >>> time.strptime('20151212 121212','%Y%m%d %H%M%S')
    10 time.struct_time(tm_year=2015, tm_mon=12, tm_mday=12, tm_hour=12, tm_min=12, tm_sec=12, tm_wday=5, tm_yday=346, tm_isdst=-1)
    11 >>> time.mktime(time.localtime())
    12 1450336685.0
    13 >>> 
    14 >>> yesterday = time.strftime('%Y-%m-%d 00:00:00',time.localtime(time.time()-3600*24))
    15 >>> print yesterday
    16 2015-12-16 00:00:00
    17 >>> tomorrow = time.strftime('%Y-%m-%d 00:00:00',time.localtime(time.time()+3600*24))
    18 >>> print tomorrow
    19 2015-12-18 00:00:00



    datetime对于时间计算很有用
    datetime模块下有几个比较有用的方法 datetime,date,time,timedelta
    语法: datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
    date(year, month, day) --> date object
    time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) --> a time object
    timedelta(days=1,hours=2,minutes=3,seconds=4)
    calendar.monthrange(year, month):判断由year和month组成月份,返回该月第一天为周几和该月总共有多少天

     1 ##取日期列表
     2 from datetime import datetime,date,timedelta
     3 def get_range_time(begin,end,step):
     4     while begin < end:
     5         yield begin
     6         begin = begin + step
     7 
     8 for i in get_range_time(datetime(2015,11,2),datetime(2016,3,2),timedelta(days=1)):
     9     print i
    10 
    11 from datetime import datetime,date,timedelta
    12 import calendar
    13 
    14 #取动态月(自然月需要置day=1),如下
    15 def get_month_range(startdate = None):
    16     if startdate is None:
    17         startdate = date.today().replace(day=1)
    18     _,days_in_month = calendar.monthrange(startdate.year,startdate.month)
    19     enddate = startdate + timedelta(days=days_in_month)
    20     return startdate,enddate
    21     
    22 begin,end = get_month_range()
    23 add_step = timedelta(days=1)
    24 while begin < end:
    25     print begin
    26     begin = begin + add_step

    请记住以下时间转换关系图

  • 相关阅读:
    JavaScript链式调用
    Javascript设计模式(2)-单体模式
    Javascript设计模式(1)
    stm32结合产品学习01—产品的框架
    【目标检测-模型对比1】R-CNN、SPPnet、Fast R-CNN、Faster R-CNN的对比
    【目标检测-框架测试】mmdetection的安装与使用
    【机器学习-笔记1】吴恩达网课笔记1——机器学习策略
    【算法】P1004 方格取数
    【算法】UVa 11624, Fire! 解题心得
    vector
  • 原文地址:https://www.cnblogs.com/benric/p/5057718.html
Copyright © 2011-2022 走看看