http://blog.csdn.net/followingturing/article/details/7987809 Python时间处理
简介
一般有两种表示时间的方式:
第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的
第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同
year (four digits, e.g. 1998)
month (1-12)
day (1-31)
hours (0-23)
minutes (0-59)
seconds (0-59)
……
函数介绍
time.time() 获取当前时间戳
time.localtime() 当前时间戳的struct_time形式
time.ctime() 当前时间戳的字符串形式
time.asctime()将一个struct_time(默认为当时时间),转换成字符串
time.clock():
该函数有两个功能,
在第一次调用的时候,返回的是程序运行的实际时间;
以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔
time.strftime():
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
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
……
>>> time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) '2014-05-31 22:47:47' >>> time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 'Sat May 31 22:56:48 2014'
>>> s = '2014-5-20' >>> a = time.strptime(s,'%Y-%m-%d') >>> time.strftime('%c',a) '05/20/14 00:00:00'
time.strptime():
将时间字符串根据指定的格式化符转换成数组形式的时间
>>> s="2006-1-2" >>> time.strptime(s,"%Y-%m-%d)
演示计算两个日期相差天数的计算
>>> import datetime >>> d1 = datetime.datetime(2009,8,19) >>> d2 = datetime.datetime(2014,5,15) >>> (d2-d1).days 1730
演示计算运行时间的例子,以秒进行显示
import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime - starttime).seconds
演示计算当前时间向后10小时的时间
>>> d1 = datetime.datetime.now() >>> d3 = d1 + datetime.timedelta(hours=10) >>> d3.ctime()
——————————————————举例————————————————————
#-*- coding:utf-8 -*- import time import datetime # time , datetime , string 类型互相转换 # # string -> time # time.strptime(publishDate,"%Y-%m-%d %H:%M:%S") # # time -> string # time.strftime("%y-%m-%d",t) date = '2007-01-01' print type(date) date = time.strptime(date,"%Y-%m-%d") print type(date) print date[0] d4 = datetime.datetime(date[0], date[1],date[2]) print d4 print type(d4) #将日期时间对象转成字符串则要用 date = time.strftime("%y-%m-%d",date) print type(date) #其中date为日期时间对象
————————————————一个通用的时间计算小程序—————————————
# -*- coding:GBK -*- # 计算两个时间的间隔天数 # 注意:输入月份和天时,不能输入08,09等,会被识别为 8 进制而出错!(8进制是不超过07的) # 解决办法:要把月份和天前面的0去掉。 from datetime import datetime (y1,m1,d1) = input("请输入时间1(格式为2009,8,9):") (y2,m2,d2) = input("请输入时间2:") date1 = datetime(y1,m1,d1) date2 = datetime(y2,m2,d2) days = (date2-date1).days if (days<0): # 如果时间相差为负数,取为正数 days = -days if (days>365): print '两个时间相隔',days/365,'年',days%365,'天' else: print '两个时间相隔',days,'天!'