python时间处理惩罚详解
1.获取当前时间的两种要领:
import datetime,time
now = time.strftime("%Y-%m-%d %H:%M:%S")
print now
now = datetime.datetime.now()
print now
2.获取上个月最后一天的日期(本月的第一天减去1天)
last = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)
print last
3.获取时间差(时间差单元为秒,常用于计较措施运行的时间)
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime – starttime).seconds
4.计较当前时间向后10个小时的时间
d1 = datetime.datetime.now()
d3 = d1 + datetime.timedelta(hours=10)
d3.ctime()
其本上常用的类有:datetime和timedelta两个。它们之间可以彼此加减。每个类都有一些要领和属性可以查察详细的值,如 datetime可以查察:天数(day),小时数(hour),礼拜几(weekday())等;timedelta可以查察:天数(days),秒数 (seconds)等。
5.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 当前时区的名称
%% %号自己
附上示例代码:
代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/–>#-*-coding:utf-8-*-
import datetime, calendar
def getYesterday():
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
yesterday=today-oneday
return yesterday
def getToday():
return datetime.date.today()
#获取给定参数的前几天的日期,返回一个list
def getDaysByNum(num):
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
li=[]
for i in range(0,num):
#本日减一天,一天一天减
today=today-oneday
#把日期转换成字符串
#result=datetostr(today)
li.append(datetostr(today))
return li
#将字符串转换成datetime范例
def strtodatetime(datestr,format):
return datetime.datetime.strptime(datestr,format)
#时间转换成字符串,名目为2008-08-02
def datetostr(date):
return str(date)[0:10]
#两个日期相隔几多天,例:2008-10-03和2008-10-01是相隔两天
def datediff(beginDate,endDate):
format="%Y-%m-%d";
bd=strtodatetime(beginDate,format)
ed=strtodatetime(endDate,format)
oneday=datetime.timedelta(days=1)
count=0
while bd!=ed:
ed=ed-oneday
count+=1
return count
#获取两个时间段的所有时间,返回list
def getDays(beginDate,endDate):
format="%Y-%m-%d";
bd=strtodatetime(beginDate,format)
ed=strtodatetime(endDate,format)
oneday=datetime.timedelta(days=1)
num=datediff(beginDate,endDate)+1
li=[]
for i in range(0,num):
li.append(datetostr(ed))
ed=ed-oneday
return li
#获取当前年份 是一个字符串
def getYear():
return str(datetime.date.today())[0:4]
#获取当前月份 是一个字符串
def getMonth():
return str(datetime.date.today())[5:7]
#获取当前天 是一个字符串
def getDay():
return str(datetime.date.today())[8:10]
def getNow():
return datetime.datetime.now()
print getToday()
print getYesterday()
print getDaysByNum(3)
print getDays('2008-10-01','2008-10-05')
print '2008-10-04 00:00:00'[0:10]
print str(getYear())+getMonth()+getDay()
print getNow()