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 相关文章推荐
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
python实现简单井字棋小游戏
Mar 05 Python
python将音频进行变速的操作方法
Apr 08 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
pytorch学习教程之自定义数据集
Nov 10 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
php格式化json函数示例代码
2016/05/12 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
jquery动态添加option示例
2013/12/30 Javascript
完善的jquery处理机制
2016/02/21 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
js+css实现打字效果
2020/06/24 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
python paramiko模块学习分享
2017/08/23 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
技术总监个人的自我评价范文
2013/12/18 职场文书
先进个人事迹材料
2014/01/25 职场文书
中学生打架检讨书
2014/02/10 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书