python time模块主要包含各种提供日期、时间功能的相关函数。time模块既提供了把日期、时间格式化为字符串的功能,也提供了从字符串恢复日期、时间的功能。

 

python time模块_第1张图片

 

一.前言

在 time 模块内提供了很多函数,很多函数都会返回一个 time.struct_time 类,该类代表一个时间对象,它主要包含 9 个属性,每个属性的信息如图所示:

python time模块_第2张图片

 

二.time模块常用函数介绍

time.gmtime([secs]) — 将以秒数代表的时间转换为 struct_time 对象。如果不传入参数,则使用当前时间;

time.asctime([t]) — 将时间元组或 struct_time 转换为时间字符串。如果不指定参数 t,则默认转换当前时间;

time.localtime([secs]) — 将以秒数代表的时间转换为代表当前时间的 struct_time 对象。如果不传入参数,则使用当前时间;

time.sleep(secs) — 暂停 secs 秒,什么都不干;

time.strftime(format[, t]) — 将时间元组或 struct_time 对象格式化为指定格式的时间字符串。如果不指定参数 t,则默认转换当前时间;

time.strptime(string[, format]) — 将字符串格式的时间解析成 struct_time 对象;

time.time() — 返回从 1970 年 1 月 1 日 0 点整到现在过了多少秒;

time.tzname — 返回本地时区的名字;

1

2

3

4

# 获取本地时区的名字

local_time = time.tzname[0]

# 如果不设置编码格式,输出是乱码

print(local_time.encode('latin-1').decode('gbk'))

输出:

1

中国标准时间

 

python time模块_第3张图片

 

三.time模块使用

1.获取时间


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解忧

@Blog(个人博客地址): shuopython.com

@WeChat Official Account(微信公众号):猿说python

@Github:www.github.com

 

@File:python_time.py

@Time:2019/11/07 21:25

 

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

 

# 导入时间time模块

import time

 

# 获取当前时间,默认格式

print(time.asctime())

 

# 返回 time.struct_time 类型对象

print(time.gmtime())

 

# 返回 time.struct_time 类型对象

print(time.localtime())

 

# 返回从 1970 年 1 月 1 日 0 点整到现在过了多少秒

print(time.time())

输出结果:

1

2

3

4

Thu Nov  7 21:26:29 2019

time.struct_time(tm_year=2019, tm_mon=11, tm_mday=7, tm_hour=13, tm_min=26, tm_sec=29, tm_wday=3, tm_yday=311, tm_isdst=0)

time.struct_time(tm_year=2019, tm_mon=11, tm_mday=7, tm_hour=21, tm_min=26, tm_sec=29, tm_wday=3, tm_yday=311, tm_isdst=0)

1573133189.8083951

 

 

2.自定义时间格式

可以通过 time.strftime() 函数 将 struct_time 对象转为自定义时间格式 或者 将字符串转为 struct_time 对象,在转换过程中可能需要用到以下格式参数:

%a 星期几的简写;

%A 星期几的全称;

%b 月分的简写;

%B 月份的全称;

%c 标准的日期的时间串;

%C 年份的后两位数字;

%d 十进制表示的每月的第几天;

%D 月/天/年;

%e 在两字符域中,十进制表示的每月的第几天;

%F 年-月-日;

%g 年份的后两位数字,使用基于周的年;

%G 年分,使用基于周的年;

%h 简写的月份名;

%H 24小时制的小时;

%I 12小时制的小时;

%j 十进制表示的每年的第几天;

%m 十进制表示的月份;

%M 十时制表示的分钟数;

%n 新行符;

%p 本地的AM或PM的等价显示;

%r 12小时的时间;

%R 显示小时和分钟:hh:mm;

%S 十进制的秒数;

%t 水平制表符;

%T 显示时分秒:hh:mm:ss;

%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0);

%U 第年的第几周,把星期日做为第一天(值从0到53);

%V 每年的第几周,使用基于周的年;

%w 十进制表示的星期几(值从0到6,星期天为0);

%W 每年的第几周,把星期一做为第一天(值从0到53);

%x 标准的日期串;

%X 标准的时间串;

%y 不带世纪的十进制年份(值从0到99);

%Y 带世纪部分的十制年份;

%z,%Z 时区名称,如果不能得到时区名称则返回空字符;

%% 百分号;

 

将 struct_time 对象转为自定义时间格式,示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

# 导入时间time模块

import time

 

 

str_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())#再由中间格式转为字符串(str)

print(str_time)

 

str_time = time.strftime('%Y/%m/%d %H:%M:%S', time.localtime())#再由中间格式转为字符串(str)

print(str_time)

 

str_time = time.strftime('%Y/%m/%d %H-%M-%S', time.localtime())#再由中间格式转为字符串(str)

print(str_time)

输出结果:

1

2

3

2019-11-07 14:14:59

2019/11/07 22:14:59

2019/11/07 22-14-59

 

python time模块_第4张图片

 

3.查看代码执行时间

在python开发项目过程中,我们往往会优化代码,查找哪些代码比较耗时,具体耗时多少,那么同样也可以通过time模块完成,

1

2

3

4

5

6

# 导入时间模块

import time

 

start_time = time.time()

# 代码块

elapse_time = time.time() - start_time  # 单位:秒

代码分析:通过 time.time() 获取当前时间,然后两个时间相减,自然就能得到代码耗时时间,单位:秒,示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# 导入时间time模块

import time

 

def my_model():

 

    start_time = time.time()

    # 如果年底老板给我加薪,我就注释这行代码,可以让程序运行效率明显提升

    time.sleep(0.5)

    end_time = time.time()

    print("核心功能代码耗时:{}秒".format(end_time - start_time))

 

if __name__ == "__main__":

 

    # 核心功能实现

    for i in range(0,10):

        my_model()

如果哪天你用这样的代码去忽悠你的项目经历或者老板,当你被打断腿的时候请不要提起我!

python time模块_第5张图片

 

 

猜你喜欢:

1.python sys模块

2.python random模块

3.python线程创建

4.python线程互斥锁Lock

 

转载请注明:猿说Python » python time模块