首页 > 技术文章 > python时间模块笔记

wmm007 2017-11-07 17:15 原文

def transfer(timestamp,format='%Y-%m-%d %H:%M:%S'):
    import time
    '''
    把时间戳转成格式化输出的字符串
    '''
    time_tuple = time.gmtime(timestamp)#先把时间戳转成时间元组
    res = time.strftime(format, time_tuple) #格式化时间
    return res
def transfer2(time_str,format='%Y%m%d%H%M%S'):
    import time
    '''
    把格式化好的时间字符串转成时间戳
    '''
    time_tuple = time.strptime(time_str, format)
    res = time.mktime(time_tuple)
    print(res)
    return int(res)
def get_other_time(day,format='%Y%m%d%H%M%S'):
    #这个函数是用来获取N天前的时间,或者N天后的时间
    #day如果传入负数,那么就是几天前的。传入正数,就是几天后的
    import datetime
    res = datetime.datetime.now()+datetime.timedelta(day)#取几天后的
    res_time = res.strftime(format)#格式化时间
    print(res_time)
    return res_time

 

时间表示方式有两种:时间戳、时间元组

import time
print(time.time())  # 获取当前时间戳,从Unix元年开始到现在过了多少秒,时间格式一种
>>>1510045614.40476
print(time.sleep(1))  # 休息几s
>>>None

print(time.gmtime())  # 把时间戳转换成时间元组,如果不传的话,默认取标准时区的时间戳
>>>time.struct_time(tm_year=2017, tm_mon=11, tm_mday=7, tm_hour=9, tm_min=8, tm_sec=37, tm_wday=1, tm_yday=311, tm_isdst=0)
print(time.localtime())  # 把时间戳转换成时间元组,如果不传的话,默认取当前时区的时间戳
>>>time.struct_time(tm_year=2017, tm_mon=11, tm_mday=7, tm_hour=17, tm_min=9, tm_sec=38, tm_wday=1, tm_yday=311, tm_isdst=0)

print(time.mktime(time.localtime()))  # 把时间元组转换成时间戳
>>>1510045829.0

print(time.strptime("20160204 191919", "%Y%m%d %H%M%S")) # 将格式化的时间转换成时间元组
>>>time.struct_time(tm_year=2016, tm_mon=2, tm_mday=4, tm_hour=19, tm_min=19, tm_sec=19, tm_wday=3, tm_yday=35, tm_isdst=-1)

print(time.struct_time)  # 时间元组
>>><class 'time.struct_time'>

print(time.asctime())  # 时间元转换成格式化时间
>>>Tue Nov  7 17:12:41 2017

print(time.ctime())  # 时间戳转换成格式化时间
>>>Tue Nov  7 17:13:13 2017

print(datetime.datetime.now())  # 当然时间格式化输出
>>>2017-11-07 17:13:58.620024

print(datetime.datetime.now() + datetime.timedelta(3))  # 3天后的时间
print(datetime.datetime.now() + datetime.timedelta(-3)) # 3天前的时间
>>>2017-11-10 17:14:21.610339
>>>2017-11-04 17:14:21.610339



 

推荐阅读