zoukankan      html  css  js  c++  java
  • python成长之路【第六篇】:python模块--time和datetime

    1、时间表现形式

    时间戳  (1970年1月1日之后的秒,即:time.time())
    格式化的时间字符串   (2014-11-11 11:11,    即:time.strftime('%Y-%m-%d'))
    元组((struct_time)共九个元素  (元组包含了:年、日、星期等... time.struct_time    即:time.localtime())

    注意:时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。

    元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。

    UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

    2、time模块方法:help(time.time)

    time.time() #获取时间戳,从1970-1-1 0:0:0到现在的秒数
    time.sleep(2) #暂停2秒
    time.gmtime() #时间戳转换为UTC时间,表现为元组形式
    time.localtime() #时间戳转换为本地时间,表现为元组形式
    time.mktime() #将元组形式的时间转换为时间戳
    time.strftime("%Y-%m-%d %H:%M:%S",[,tuple]) #将元组形式的时间转化为格式化的字符串
            %Y == x.tm_year
    time.strptime("2016-08-20 14:44:00","%Y-%m-%d %H:%M:%S") #将格式化的字符串转换为元组形式的时间
    time.asctime() #将元组形式的时间转换为格式化的字符串
    time.ctime() #将时间戳转换为格式化的字符串
    

      

    转成元组(struct_time)形式:

    #时间戳转换为元组形式的时间,如果()中没有值,则将当前时间戳转换为元组形式
    print(time.localtime())
    输出:
    time.struct_time(tm_year=2016, tm_mon=8, tm_mday=21, tm_hour=17, tm_min=11, tm_sec=52, tm_wday=6, tm_yday=234, tm_isdst=0)

    #日期字符串转成元组形式的时间
    string_2_struct = time.strptime("2016/08/21","%Y/%m/%d")
    print(string_2_struct)
    输出:
    time.struct_time(tm_year=2016, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=234, tm_isdst=-1)

    注意:其实%Y == string_2_struct.tm_year,其他类似,这样我们也可以输出格式化后的字符串时间格式。
    print("{year}-{month}-{day}".format(year=string_2_struct.tm_year,month=string_2_struct.tm_mon,day=string_2_struct.tm_mday))

    转换成时间戳:

    #将元组形式的时间转换成时间戳
    print(time.mktime(time.localtime()))
    输出:
    1471771439.0

    转换为时间的字符串格式:
    #将元组形式的时间转换成字符串格式的时间,格式可自定义。
    print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
    输出:
    2016-08-21 17:28:03

    #将元组形式的时间转换为字符串格式的时间,返回时间格式:"Sun Aug 21 17:39:17 2016"
    print(time.asctime(time.localtime()))
    输出:
    Sun Aug 21 17:39:17 2016

    #将时间戳转换为字符串格式的时间,返回时间格式:"Sun Aug 21 17:39:17 2016"
    print(time.ctime())
    输出:
    Sun Aug 21 17:39:17 2016

    字符串格式参照:
    %a    本地(locale)简化星期名称    
    %A    本地完整星期名称    
    %b    本地简化月份名称    
    %B    本地完整月份名称    
    %c    本地相应的日期和时间表示    
    %d    一个月中的第几天(01 - 31)    
    %H    一天中的第几个小时(24小时制,00 - 23)    
    %I    第几个小时(12小时制,01 - 12)    
    %j    一年中的第几天(001 - 366)    
    %m    月份(01 - 12)    
    %M    分钟数(00 - 59)    
    %p    本地am或者pm的相应符   
    %S    秒(01 - 61)   
    %U    一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。      
    %w    一个星期中的第几天(0 - 6,0是星期天)    
    %W    和%U基本相同,不同的是%W以星期一为一个星期的开始。    
    %x    本地相应日期    
    %X    本地相应时间    
    %y    去掉世纪的年份(00 - 99)    
    %Y    完整的年份    
    %Z    时区的名字(如果不存在为空字符)    
    %%    ‘%’字符
    

      

    各个时间表现形式之间的逻辑图,如下:

    3、时间模块datetime

    import datetime
    print(datetime.datetime.now()) #返回 2016-08-21 17:48:55.171126
    print(datetime.date.fromtimestamp(time.time())) #返回2016-08-21
    print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
    print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
    print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
    print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分钟
    

    #时间替换
    c_time = datetime.datetime.now()
    print(c_time.replace(hour=2,minute=3)) #将c_time中的hour替换为2
    输出:
    2016-08-21 02:03:30.526171

  • 相关阅读:
    linux之用户和用户组管理详解
    linux权限管理
    flink 1.7.2 安装详解
    TJI读书笔记13-内部类
    TJI读书笔记12-接口
    TJI读书笔记11-多态
    TJI读书笔记10-复用类
    TJI读书笔记09-访问控制权限
    TIJ读书笔记08-数组的初始化和可变长参数形参
    TJI读书笔记07-初始化
  • 原文地址:https://www.cnblogs.com/wooya/p/5809032.html
Copyright © 2011-2022 走看看