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

本文实例讲述了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时间戳转换及日期在线工具,非常实用,提供给大家参考:

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部