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

一.前言

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

二.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 — 返回本地时区的名字;

# 获取本地时区的名字
local_time = time.tzname[0]
# 如果不设置编码格式,输出是乱码
print(local_time.encode('latin-1').decode('gbk'))

输出:

中国标准时间

三.time模块使用

1.获取时间

# !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())

输出结果:

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 对象转为自定义时间格式,示例代码如下:

# 导入时间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)

输出结果:

2019-11-07 14:14:59
2019/11/07 22:14:59
2019/11/07 22-14-59

3.查看代码执行时间

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

# 导入时间模块
import time start_time = time.time()
# 代码块
elapse_time = time.time() - start_time # 单位:秒

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

# 导入时间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()

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

猜你喜欢:

1.python sys模块

2.python random模块

3.python线程创建

4.python线程互斥锁Lock

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

技术交流、商务合作请直接联系博主
扫码或搜索:猿说python
猿说python
微信公众号 扫一扫关注

python time模块(13)的更多相关文章

  1. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  2. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  3. python基础-模块

    一.模块介绍                                                                                              ...

  4. Python Paramiko模块与MySQL数据库操作

    Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...

  5. Python学习笔记- Python threading模块

    Python threading模块 直接调用 # !/usr/bin/env python # -*- coding:utf-8 -*- import threading import time d ...

  6. Day05 - Python 常用模块

    1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...

  7. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  8. python os模块学习

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是wi ...

  9. python常用模块(1):collections模块和re模块(正则表达式详解)

    从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来 ...

随机推荐

  1. httpclient post请求中文乱码解决办法

    在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...

  2. 按位与(&),或(|),异或(^),取反(~),左移(<<),右移(>>)

    C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 ...

  3. LeetCode 1219. Path with Maximum Gold

    原题链接在这里:https://leetcode.com/problems/path-with-maximum-gold/ 题目: In a gold mine grid of size m * n, ...

  4. LeetCode 837. New 21 Game

    原题链接在这里:https://leetcode.com/problems/new-21-game/ 题目: Alice plays the following game, loosely based ...

  5. Redis存储List

    list中数据可以重复,查询快,增删慢. 存储结构: 1.向List存取数据: 查询list中的全部元素: 第一个进入a,第二个进入b,并将a向后移一位. 上图为从右边插入元素的情况. 2.从两头取出 ...

  6. 29-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(Lwip RAW模式,非RTOS版,精简入门)

    https://www.cnblogs.com/yangfengwu/p/11456667.html 由于上一节的源码长时间以后会自动断开,所以再做这一版非RTOS版的,咱直接用lua源码里面别人写的 ...

  7. 洛谷 P4071 [SDOI2016]排列计数 题解

    P4071 [SDOI2016]排列计数 题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳 ...

  8. 市场细分(Market Segmentation)

    什么是市场细分? 市场细分其实就是把拥有共同特征的人分在一起.这些共同特征可以是:喜欢喝某个牌子的红酒,飞机总是做头等舱,习惯用windows系统等等. 市场细分有什么用? 1,不同细分市场的需求存在 ...

  9. 【JZOJ6217】【20190614】最大面积

    题意 平面上有\(n\)个点\(A_i\),\(q\)次询问,每次给出一个点\(P\),求: \[ \sum_{i=L}^{R} 2S_{\triangle OPA_i} \] 最大值,其中$S_{\ ...

  10. 「ZJOI2019」Minmax搜索

    传送门 Solution 叶子节点的变化区间是连续的,可得知非叶子节点的权值变化区间也是连续的 由此可知,\(W\)的变化值的可行域也是连续的,所以只需要看它能否变为\(W+1\)或\(W-1\) 对 ...