Python日期时间Time模块实例详解


Posted in Python onApril 15, 2019

本文实例讲述了Python日期时间Time模块。分享给大家供大家参考,具体如下:

关于时间和日期模块

python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能。
python提供了一个time和calendar模块可以用于格式化日期和时间。
时间间隔是以秒为单位的浮点小数
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
python的time模块下有很多函数可以转换常见的日期格式。

Time模块

1.1 名词解释

UTC :格林威治天文时间,世界标准时间,在中国为UTC-8

DST:夏令时是一种节约能源而人为规定的时间制度,在夏季调快一小时.

1.2 时间的表示形式

1.时间戳

以整数或浮点型表示的是一个秒为单位的时间间隔,这个时间的基础值1970.1.1的零点开始算起

2.元组格式

采用python的数据结构表示,这个元组有9个整型内容,分别表示不同含义

year month day hours minutes seconds weekday Julia day flag[1 夏令时 -1 根据当前时间判断 0 正常表示]

3.格式化字符串

%Y 完整年份

时间格式

'''
%a 本地(local) 简化星期名称
%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-60)
%U 一年中的星期数。(00-53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第0周
%w 一个星期中的第几天(0-6 0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00-99)
%Y 完整的年份
%z 时区的名字
%% '%'字符
'''
import time
time1 = time.time()
lt = time.localtime(time1)
st = time.strftime('''a: %a |A: %A |b: %b |B: %B |c: %c |d: %d
H: %H |I: %I |j: %j |m: %m |M: %M |p: %p
S: %S |U: %U |w: %w |W: %W |x: %x |X: %X
y: %y |Y: %Y |z: %z |%% ''',lt)
print(st)

输出:

a: Thu |A: Thursday |b: Apr |B: April |c: Thu Apr 12 17:15:19 2018 |d: 12
H: 17 |I: 05 |j: 102 |m: 04 |M: 15 |p: PM
S: 19 |U: 14 |w: 4 |W: 15 |x: 04/12/18 |X: 17:15:19
y: 18 |Y: 2018 |Z: +0800 |%

获取当前时间

1、time.clock()

以浮点数计算秒数,返回程序运行的时间。

print(time.clock())
time.sleep(2)
print(time.clock())

输出:

0.0
2.0007889054974255

print(time.clock())

输出:

4.665319322446344e-07

用处:可用来计算一段程序运行的时间。

import time
start = time.clock()
for cock in range(5,101,5):  # 公鸡
  for hen in range(3,101 - cock,3): #母鸡
    for chick in range(1,101 - cock - hen): #小鸡
      if cock // 5 + hen // 3 + chick * 3 == 100 and cock + hen + chick == 100:
        pass
end = time.clock()
time2 = end - start
print("方案二所花时间",time2)

输出:

方案二所花时间 0.0041665966868768296

2、time.sleep(seconds)

程序休眠seconds再执行下面的语句。单位s

3、time.time() 时间戳

返回一个浮点型数据

格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。

time1 = time.time()
print(time1)

输出:

1523427779.9672592

4、time.gmtime(时间戳)

把时间戳转成格林尼治时间,返回一个时间元组

time1 = time.time()
gm = time.gmtime(time1)
print(gm)

输出:

time.struct_time(tm_year=2018, tm_mon=4, tm_mday=11, tm_hour=6, tm_min=22, tm_sec=59, tm_wday=2, tm_yday=101, tm_isdst=0)

5、time.localtime(时间戳)

把时间戳转成本地时间,返回一个时间元组。(如中国时区,加上8个小时)

time1 = time.time()
lm = time.localtime(time1)
print(lm)

输出:

time.struct_time(tm_year=2018, tm_mon=4, tm_mday=11, tm_hour=14, tm_min=22, tm_sec=59, tm_wday=2, tm_yday=101, tm_isdst=0)

6、time.mktime(时间元组)

把时间元组转成时间戳,返回一个浮点数。

lm2 = time.localtime(1523328000)
time2 = time.mktime(lm2)
print(time2)

输出:

1523328000.0

7、time.asctime(时间元组)

将时间元组转成一个字符串。

lm2 = time.localtime(1523328000)
st = time.asctime(lm2)
print(st)

输出:

Tue Apr 10 10:40:00 2018

8、time.ctime(时间戳)

将时间戳转成一个字符串。

time1 = time.time()
ct = time.ctime(time1)
print(ct)

输出:

Wed Apr 11 15:18:35 2018

9、time.strftime(format,时间元组)

将时间元组转成指定格式的字符串。

time1 = time.time()
lm = time.localtime(time1)
sct = time.strftime("%Y-%m-%d %X",lm)
print(sct)

输出:

2018-04-11 15:18:35

10、time.strptime(字符串,format)

将指定格式的字符串转成时间元组。

strp = time.strptime('2018-04-10 11:12:57',"%Y-%m-%d %X")
print(strp)

输出:

time.struct_time(tm_year=2018, tm_mon=4, tm_mday=10, tm_hour=11, tm_min=12, tm_sec=57, tm_wday=1, tm_yday=100, tm_isdst=-1)

11、获取凌晨零点到23:59的时间

now = time.time()
midnight = now - (now % 86400) + time.timezone
pre_midnight = midnight - 86400
now_midnight = midnight - 1
start_time = datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(pre_midnight)),
                  "%Y-%m-%d %H:%M:%S")
end_time = datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(now_midnight)),
                 "%Y-%m-%d %H:%M:%S")

PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线万年历日历:
http://tools.3water.com/bianmin/wannianli

在线阴历/阳历转换工具:
http://tools.3water.com/bianmin/yinli2yangli

Unix时间戳(timestamp)转换工具:
http://tools.3water.com/code/unixtime

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
django使用html模板减少代码代码解析
Dec 12 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
对dataframe数据之间求补集的实例详解
Jan 30 Python
Python简单I/O操作示例
Mar 18 Python
python flask安装和命令详解
Apr 02 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
python实现经纬度采样的示例代码
Dec 10 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 #Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 #Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 #Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 #Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 #Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 #Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 #Python
You might like
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
php开发工具之vs2005图解
2008/01/12 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
JS实现放烟花效果
2020/03/10 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
日语系毕业生推荐信
2013/11/11 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
毕业生求职信
2014/06/10 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
box-shadow单边阴影的实现
2023/05/21 HTML / CSS