美文网首页
python的时间和日期

python的时间和日期

作者: Judy警官 | 来源:发表于2019-05-30 20:35 被阅读0次

    这里总结了python常用的时间和日期处理的几个函数,并封装了常用的时间操作。

    引入的主要的包是time和datetime;

    时间元组---》时间字符串:time.strftime(格式字符串,时间元组)

    时间字符串--》时间元组:time.strptime(时间字符串,格式字符串)

    时间戳--》时间元组:time.localtime(时间戳)

    时间元组--》时间戳:time.mktime(时间元组)

    时间变量:datetime.timedelta(hours=xxx),在datetime.datetime.now()基础上加减

    几个小栗子作为实践:

    #coding='utf-8'
    
    '''
    
    1.获得当前日期:xxxx-xx-xx,xxxx年xx月xx日
    
    2.获得当前时间:xx:xx:xx,xx时xx分xx秒
    
    3.获得年月日时分秒:xxxx-xx-xx xx:xx:xx,xxxx年xx月xx日xx时xx分xx秒
    
    4.将日期转换为时间戳
    
    5.将时间戳转换为年月日时分秒
    
    6.计算明天、昨天的日期
    
    7.计算xxx小时的时间
    
    8.计算yyy天之后和之前的日期
    
    9.传一个日期,计算是星期几
    
    10.传一个日期,计算今天时今年的第多少天
    
    '''
    
    import time
    
    import locale
    
    def get_today():
    
          '''
    
          :return: 当天日期,格式:xxxx-xx-xx
    
          '''
    
        return  time.strftime("%Y-%m-%d",time.localtime())
    
    def get_today_Chinese():
    
        '''
    
        :return: 当天日期,格式:xxxx年xx月xx日
    
        '''
    
        locale.setlocale(locale.LC_CTYPE,'chinese')#如果格式中有中文,需要先切换到中文模式
    
        return time.strftime("%Y年%m月%d日",time.localtime())
    
    def get_now():
    
        '''
    
        :return: 当前时间:xx:xx:xx
    
        '''
    
        return  time.strftime("%H:%M:%S",time.localtime())
    
    def get_now_chinese():
    
        '''
    
        :return: 当前时间:xx时xx分xx秒
    
        '''
    
        return  time.strftime("%H时%M分%S秒",time.localtime())
    
    def get_today_now():
    
        '''
    
        :return: 当前时间,格式为:xxxx-xx-xx xx:xx:xx
    
        '''
    
        return  time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    
    def get_today_now_chinese():
    
        '''
    
        :return: 当前时间,格式为:xxxx年xx月xx日xx时xx分xx秒
    
        '''
    
        return  time.strftime("%Y年%m月%d日 %H时%M分%S秒",time.localtime())
    
    def date_to_timestamp(s):
    
        '''
    
        :param s: %Y-%m-%d格式的时间
    
        :return: s对应的时间戳
    
        '''
    
        return time.mktime(time.strptime(s,"%Y-%m-%d"))
    
    def timestamp_to_strtime(s):
    
        '''
    
        :param s: 时间戳
    
        :return: s对应的时间字符串,格式为:%s年%s月%s日%s时%s分%s秒
    
        '''
    
        return "%s年%s月%s日%s时%s分%s秒"%(time.localtime(s).tm_year,time.localtime(s).tm_mon,time.localtime(s).tm_mday,
    
    time.localtime(s).tm_hour,time.localtime(s).tm_min,time.localtime(s).tm_sec)
    
    import datetime
    
    def get_tomorrow():
    
        '''
    
        :return: 第二天日期(明天),格式为xxxx-xx-xx
    
        '''
    
        now = datetime.datetime.now()
    
        delta = datetime.timedelta(days=1)
    
        newTime = now + delta
    
        return str(newTime)[:-16]
    
    def get_yestoday():
    
        '''
    
        :return: 前一天日期(昨天),格式为xxxx-xx-xx
    
        '''
    
        now = datetime.datetime.now()
    
        delta = datetime.timedelta(days=-1)
    
        newTime = now + delta
    
        return str(newTime)[:-16]
    
    def get_hours_after(n):
    
        '''
    
        :param n:小时数,整数
    
        :return: n小时之后的时间,格式为xxxx-xx-xx xx:xx:xx
    
        '''
    
            if not isinstance(n,int):
    
                return None
    
            now = datetime.datetime.now()
    
            delta = datetime.timedelta(hours=n)
    
            newTime = now + delta
    
            return str(newTime)[:-7]
    
    def get_days_after(n):
    
        '''
    
        :param n:天数,整数
    
        :return: n天之后的日期,格式为xxxx-xx-xx
    
        '''
    
        now = datetime.datetime.now()
    
        delta = datetime.timedelta(days=n)
    
        newTime = now + delta
    
        return str(newTime)[:-16]
    
    def get_days_before(n):
    
        '''
    
        :param n:天数,整数
    
        :return: n天之前的日期,格式为xxxx-xx-xx
    
        '''
    
        now = datetime.datetime.now()
    
        delta = datetime.timedelta(days=-n)
    
        newTime = now + delta
    
        return str(newTime)[:-16]
    
    def get_week(s):
    
        '''
    
        :param s: %Y-%m-%d格式的时间
    
        :return: 星期几
    
        '''
    
        return time.strptime(s,"%Y-%m-%d").tm_wday+1
    
    def get_yday(d):
    
        '''
    
        :param s: %Y-%m-%d格式的时间
    
        :return: 当年的第几天
    
        '''
    
        return  time.strptime(d,"%Y-%m-%d").tm_yday
    
    if __name__=="__main__":
    
        print(get_today())
    
        print(get_today_Chinese())
    
        print(get_now())
    
        print(get_now_chinese())
    
        print(get_today_now())
    
        print(get_today_now_chinese())
    
        print(date_to_timestamp('2019-03-14'))
    
        print(timestamp_to_strtime(time.time()))
    
        print(get_tomorrow())
    
        print(get_yestoday())
    
        print(get_days_after(2))
    
        print(get_days_before(2))
        
        print(get_week("2019-03-24"))
    
        print(get_yday('2019-03-24'))
    
        print(get_hours_after(5))
    

    相关文章

      网友评论

          本文标题:python的时间和日期

          本文链接:https://www.haomeiwen.com/subject/plsbtctx.html