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 相关文章推荐
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
Python中max函数用于二维列表的实例
Apr 03 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
python 显示数组全部元素的方法
Apr 19 Python
python 中字典嵌套列表的方法
Jul 03 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
python实现的分层随机抽样案例
Feb 25 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
python代码中怎么换行
Jun 17 Python
python 用struct模块解决黏包问题
Nov 07 Python
如何利用python和DOS获取wifi密码
Mar 31 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
php实现图片缩略图的方法
2016/03/29 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
使用Apache的rewrite
2021/03/09 Servers
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python 爬取疫情数据的源码
2020/02/09 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
商场活动策划方案
2014/01/24 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
求职意向书
2014/07/29 职场文书
社区两委对照检查材料
2014/08/23 职场文书
使用Django框架创建项目
2022/06/10 Python
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL