python的时间和日期

2019-05-30  本文已影响0人  Judy警官

这里总结了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))
上一篇下一篇

猜你喜欢

热点阅读