相关文章推荐

官方文档中这样介绍:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  The other representation is a tuple of 9 integers giving local time.
  The tuple items are:
year (including century, e.g. 1998)
month (1-12)
day (1-31)
hours (0-23)
minutes (0-59)
seconds (0-59)
weekday (0-6, Monday is 0)
Julian day (day in the year, 1-366)
DST (Daylight Savings Time) flag (-1, 0 or 1)
  If the DST flag is 0, the time is given in the regular time zone;
  if it is 1, the time is given in the DST time zone;
  if it is -1, mktime() should guess based on the date and time.
  
  • 时间字符串是string类型的数据,一种便于阅读的时间数据表示形式。
  • 2 主要函数

    time()

    time函数返回当前时间戳

    1
    2
    3
    4
    t1 = time.time()  # time函数返回当前时间戳-float型数据
    print("time函数返回当前时间戳-float型数据")
    print(t1)
    print(type(t1), "\n")
    
    1
    2
    3
    time函数返回当前时间戳-float型数据
    1534260500.7620687
    <class 'float'> 
    

    localtime(secs)

    localtime函数可以接收一个时间戳,返回一个时间元组;如果参数为空,则返回当前时间的元组。

    1
    2
    3
    4
    t2 = time.localtime(1493890956)  # localtime函数接受一个时间戳,返回一个时间元组
    print("localtime函数接受一个时间戳,返回一个时间元组")
    print(t2)
    print(type(t2), "\n")
    
    1
    2
    3
    localtime函数接受一个时间戳返回一个时间元组
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=4, tm_hour=17, tm_min=42, tm_sec=36, tm_wday=3, tm_yday=124, tm_isdst=0)
    <class 'time.struct_time'> 
    

    asctime(t)

    asctime函数接受一个时间元组,返回一个格式化的字符串

    1
    2
    3
    4
    1
    2
    3
    4
    t3 = time.asctime(t2)  # asctime函数接受一个时间元组,返回一个格式化的字符串
    print("asctime函数接受一个时间元组,返回一个格式化的字符串")
    print(t3)
    print(type(t3), "\n")
    
    1
    2
    3
    asctime函数接受一个时间元组返回一个格式化的字符串
    Thu May  4 17:42:36 2017
    <class 'str'> 
    

    ctime(secs)

    ctime函数相当于localtime+asctime的结合

    1
    2
    3
    4
    t4 = time.ctime(t1)  # ctime函数相当于localtime+asctime的结合
    print("ctime函数相当于localtime+asctime的结合")
    print(t4)
    print(type(t4), "\n")
    
    1
    2
    3
    ctime函数相当于localtime+asctime的结合
    Tue Aug 14 23:28:20 2018
    <class 'str'> 
    

    strftime(format,t)

    strftime函数将时间元组转换成格式化时间字符串

    1
    2
    3
    4
    5
    6
    t5_1 = time.strftime('%Y-%m-%d %H:%M:%S %a %b', t2)  # strftime函数将时间元组转换成格式化时间字符串
    t5_2 = time.strftime('%A %B %p %I:%M:%S %z')
    print("strftime函数将时间元组转换成格式化时间字符串")
    print(t5_1)
    print(t5_2, '\n')
    
    1
    2
    3
    strftime函数将时间元组转换成格式化时间字符串
    2017-05-04 17:42:36 Thu May
    Tuesday August PM 11:28:20 +0800 
    

    strptime(str,format)

    strptime函数将字符串解析,输出时间元组

    1
    2
    3
    4
    t6 = time.strptime('2018年8月14日10点3分45秒', '%Y年%m月%d日%H点%M分%S秒')  # strptime函数将字符串解析,输出时间元组
    print("strptime函数将字符串解析,输出时间元组")
    print(t6)
    print(type(t6), "\n")
    
    1
    2
    3
    strptime函数将字符串解析输出时间元组
    time.struct_time(tm_year=2018, tm_mon=8, tm_mday=14, tm_hour=10, tm_min=3, tm_sec=45, tm_wday=1, tm_yday=226, tm_isdst=-1)
    <class 'time.struct_time'> 
    

    gmtime(secs)

    gmtime函数接收时间戳输出格林尼治时间元组

    1
    2
    3
    4
    t7 = time.gmtime(t1)  # gmtime函数接收时间戳输出格林尼治时间元组
    print("mgtime函数接收时间戳输出格林尼治时间元组,注意loacltime()是输出本地区的时间元组")
    print(t7)
    print(type(t7), "\n")
    
    1
    2
    3
    gmtime函数接收时间戳输出格林尼治时间元组注意loacltime()是输出本地区的时间元组
    time.struct_time(tm_year=2018, tm_mon=8, tm_mday=14, tm_hour=15, tm_min=28, tm_sec=20, tm_wday=1, tm_yday=226, tm_isdst=0)
    <class 'time.struct_time'> 
    

    mktime(t)

    mktime函数与gmtime函数相反,接收一个时间元组输出时间戳

    1
    2
    3
    4
    t8 = time.mktime(t7)  # mktime函数与gmtime函数相反,接收一个时间元组输出时间戳
    print("mktime函数与gmtime函数相反,接收一个时间元组输出时间戳")
    print(t8)
    print(type(t8), "\n")
    
    1
    2
    3
    4
    mktime函数与gmtime函数相反接收一个时间元组输出时间戳
    1534231700.0
    <class 'float'> 
    

    clock()

    返回进程开始后的cpu运行时间

    1
    2
    3
    4
    1
    2
    3
    4
    t3 = time.asctime(t2)  # asctime函数接受一个时间元组,返回一个格式化的字符串
    print("asctime函数接受一个时间元组,返回一个格式化的字符串")
    print(t3)
    print(type(t3), "\n")
    
    1
    2
    3
    4
    5
    返回进程开始后的cpu运行时间
    E:/PycharmProjects/practise_20180814/test_time.py:63: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
    5.021518962
      t10 = time.clock()  # 返回进程开始后的cpu运行时间
    <class 'float'> 
    

    这里警告说clock函数将在3.8版本被抛弃,新版本建议使用pref_counter()和process_time().

    sleep(secs)

    推迟调用线程的运行,secs指秒数。

    1
    2
    3
    4
    t9 = time.sleep(5)  # 推迟调用线程的运行,secs指秒数。
    print("推迟调用线程的运行,secs指秒数。")
    print(t9)
    print(type(t9), "\n")
    
    1
    2
    3
    推迟调用线程的运行secs指秒数
    <class 'NoneType'> 
    

    附上一个关系图:

    time模块比较简单也是比较常用的模块,要搞清楚3种数据类型的转化。此外,还可以使用sleep()来挂起线程。接下来会学习与time模块相关的模块calendar模块

     
    推荐文章