Python计时相关操作详解【time,datetime】
|
本文实例讲述了Python计时相关操作。分享给大家供大家参考,具体如下: 内容目录: 1. 时间戳 一、时间戳 时间戳是自 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,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) 五、例子
#! 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)转换工具: 在线日期/天数计算器: 在线万年历日历: 在线阴历/阳历转换工具: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python日期与时间操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》 希望本文所述对大家Python程序设计有所帮助。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
