Python计时相关操作详解【time,datetime】


Posted in Python onMay 26, 2017

本文实例讲述了Python计时相关操作。分享给大家供大家参考,具体如下:

内容目录:

1. 时间戳
2. 当前时间
3. 时间差
4. python中时间日期格式化符号
5. 例子

一、时间戳

时间戳是自 1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数。它也被称为 Unix 时间戳(Unix Timestamp),它在unix、c的世界里随处可见;常见形态是浮点数,小数点后面是毫秒。两个时间戳相减就是时间间隔(单位:秒)。

例:

import time
time1 = time.time()
time.sleep(15)
time2 = time.time()
print time2 - time1

其中,time.sleep()是休眠函数,单位:秒。

二、当前时间

>>> import datetime,time
>>> now = time.strftime("%Y-%m-%d %H:%M:%S")
>>> print now
2016-04-30 17:02:26
>>> now = datetime.datetime.now()
>>> print now

三、时间差

#1 昨天00:00到昨天23:59

>>> import datetime
>>> yestoday = datetime.datetime.now() - datetime.timedelta(days=1)
>>> t1 = "%s-00-00-00" % yestoday.strftime("%Y-%m-%d")
>>> t2 = "%s-23-59-59" % yestoday.strftime("%Y-%m-%d")
>>> print 't1', t1
t1 2016-04-29-00-00-00
>>> print 't2', t2
t2 2016-04-29-23-59-59

#2 现在往后10小时

>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
'Sun May 1 03:09:58 2

#3 这么一会的秒数、微妙数(注意是取秒、微妙部分,并不是等价转换)

>>> import datetime
>>> starttime = datetime.datetime.now()
>>> endtime = datetime.datetime.now()
>>> starttime = datetime.datetime.now()
>>> endtime = datetime.datetime.now()
>>> print endtime - starttime
0:00:07.390988
>>> print (endtime - starttime).seconds
7
>>> print (endtime - starttime).microseconds
390988

文件的时间戳

>>> import os
>>> statinfo=os.stat(r"C:/1.txt")
>>> statinfo
(33206, 0L, 0, 0, 0, 0, 29L, 1201865413, 1201867904, 1201865413)

注:使用os.stat的返回值statinfo中的后三项是文件的st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间),例如,取得文件修改时间:

>>> statinfo.st_mtime
1201865413.8952832

注:这个时间是一个linux时间戳,可以转换成易于理解的格式:

>>> import time
>>> time.localtime(statinfo.st_ctime)
(2008, 2, 1, 19, 30, 13, 4, 32, 0)

注:2008年2月1日的19时30分13秒(2008-2-1 19:30:13)

四、python中时间日期格式化符号

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

五、例子

#! coding:utf-8
''''' 日期相关的操作 '''
from datetime import datetime
from datetime import timedelta
import calendar
DATE_FMT = '%Y-%m-%d'
DATETIME_FMT = '%Y-%m-%d %H:%M:%S'
DATE_US_FMT = '%d/%m/%Y'
'''''
格式化常用的几个参数
Y : 1999
y :99
m : mouth 02 12
M : minute 00-59
S : second
d : day
H : hour
'''
def dateToStr(date):
  '''''把datetime类型的时间格式化自己想要的格式'''
  return datetime.strftime(date, DATETIME_FMT)
def strToDate(strdate):
  '''''把str变成日期用来做一些操作'''
  return datetime.strptime(strdate, DATETIME_FMT)
def timeElement():
  '''''获取一个时间对象的各个元素'''
  now = datetime.today()
  print 'year: %s month: %s day: %s' %(now.year, now.month, now.day)
  print 'hour: %s minute: %s second: %s' %(now.hour, now.minute, now.second)
  print 'weekday: %s ' %(now.weekday()+1) #一周是从0开始的
def timeAdd():
  '''''
  时间的加减,前一天后一天等操作
  datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
  参数可以是正数也可以是负数
  得到的对象可以加也可以减 乘以数字和求绝对值
  '''
  atime = timedelta(days=-1)
  now = datetime.strptime('2001-01-30 11:01:02', DATETIME_FMT)
  print now + atime
  print now - abs(atime)
  print now - abs(atime)*31
def lastFirday():
   today = datetime.today()
   targetDay = calendar.FRIDAY
   thisDay = today.weekday()
   de = (thisDay - targetDay) % 7
   res = today - timedelta(days=de)
   print res
def test():
  print dateToStr(datetime.today())
  print strToDate('2013-01-31 12:00:01')
  timeElement()
  timeAdd()
  lastFirday()
if __name__=='__main__':
  test()

结果

Connected to pydev debugger (build 141.1899)
2016-05-18 10:40:26
2013-01-31 12:00:01
year: 2016 month: 5 day: 18
hour: 10 minute: 41 second: 13
weekday: 3
2001-01-29 11:01:02
2001-01-29 11:01:02
2000-12-30 11:01:02
2016-05-13 10:41:37.001000

PS:本站还提供了几款关于Unix时间戳转换及日期在线工具,非常实用,提供给大家参考:

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

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

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

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

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

Python 相关文章推荐
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
Python中安装easy_install的方法
Nov 18 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
Python利用scapy实现ARP欺骗的方法
Jul 23 Python
Pytorch的mean和std调查实例
Jan 02 Python
基于python实现文件加密功能
Jan 06 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
基于Python绘制个人足迹地图
Jun 01 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
Jun 09 Python
Python表示矩阵的方法分析
May 26 #Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 #Python
Python简单网络编程示例【客户端与服务端】
May 26 #Python
Python编程对列表中字典元素进行排序的方法详解
May 26 #Python
利用Python实现网络测试的脚本分享
May 26 #Python
python 如何快速找出两个电子表中数据的差异
May 26 #Python
详解Python3操作Mongodb简明易懂教程
May 25 #Python
You might like
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
原生js实现轮播图
2017/02/27 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Python类继承和多态原理解析
2020/02/05 Python
大学生就业自荐信
2013/10/26 职场文书
自我评价格式
2014/01/06 职场文书
法制宣传标语集锦
2014/06/25 职场文书
销售员试用期自我评价
2014/09/15 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
2014年社区工作总结
2014/11/18 职场文书
运动会200米广播稿
2015/08/19 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
HTML中的表格元素介绍
2022/02/28 HTML / CSS
Python与C++中梯度方向直方图的实现
2022/03/17 Python