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 Tkinter简单布局实例教程
Sep 03 Python
Python函数式编程指南(四):生成器详解
Jun 24 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
使用Python的turtle模块画图的方法
Nov 15 Python
python操作列表的函数使用代码详解
Dec 28 Python
对python中的argv和argc使用详解
Dec 15 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
python Django里CSRF 对应策略详解
Aug 05 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
TensorFlow Autodiff自动微分详解
Jul 06 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
BBS(php & mysql)完整版(七)
2006/10/09 PHP
由php if 想到的些问题
2008/03/22 PHP
给ECShop添加最新评论
2015/01/07 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
php pdo操作数据库示例
2017/03/10 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
python3个性签名设计实现代码
2018/06/19 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
Python发送邮件实现基础解析
2020/08/14 Python
python使用smtplib模块发送邮件
2020/12/17 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
幼儿园消防演练方案
2014/02/13 职场文书
安全承诺书范文
2014/03/26 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
国旗下演讲稿
2014/05/08 职场文书
先进单位事迹材料
2014/12/25 职场文书
寒山寺导游词
2015/02/03 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
2019 入党申请书范文
2019/07/10 职场文书
详解Python中*args和**kwargs的使用
2022/04/07 Python