python 计时——time, datetime

简介:

 

时间戳

时间戳是自 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中时间日期格式化符号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
%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
复制代码

 




本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/archive/2012/11/06/2757865.html

相关文章
|
1月前
|
Python
Python用装饰器实现函数计时功能。
【2月更文挑战第11天】【2月更文挑战第29篇】Python用装饰器实现函数计时功能。
|
5月前
|
Python
Python time sleep()方法
t – 推迟执行的秒数。 返回值 该函数没有返回值。
59 0
|
6月前
|
存储 Linux C语言
Python标准库分享之时间与日期 (time, datetime包)
Python标准库分享之时间与日期 (time, datetime包)
|
1月前
|
安全 Python
Python如何使用datetime模块进行日期和时间的操作
Python如何使用datetime模块进行日期和时间的操作
25 1
|
26天前
|
数据挖掘 Python
Python中的datetime模块:轻松拿捏时间操作
Python的`datetime`模块是处理日期和时间的核心工具,包括`date`、`time`、`datetime`、`timedelta`类。它可以创建、操作和格式化日期时间。
19 2
|
1月前
|
数据处理 Python
使用Python的time库来格式化时间
使用Python的time库来格式化时间
51 1
|
1月前
|
Python
python字符串转为datetime
在Python中,timedelta对象是用于表示时间间隔的,它常常被用来计算两个日期或时间之间的差值,有时我们可能需要将timedelta对象转换为字符串,以便于阅读和记录,以下是如何将timedelta对象转换为字符串的详细步骤:
|
3月前
|
存储 Unix Shell
Python 自动化指南(繁琐工作自动化)第二版:十七、计时、安排任务和启动程序
Python 自动化指南(繁琐工作自动化)第二版:十七、计时、安排任务和启动程序
59 1
|
3月前
|
开发者 Python
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
30 1
|
3月前
|
Python
Python学习 -- datetime模块
Python学习 -- datetime模块
10 0