time.strptime():
将普通字符时间转换为时间元祖,注意这两者在转换时需要指定字符时间的格式(%Y%m%d
这里只用到了年月日)
import time
print time.strptime('20170301', '%Y%m%d')
输出结果:
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=60, tm_isdst=-1)
time.mktime():
将上一步的时间元祖转换为时间戳,即1970年0时0分0秒到20170301的0时0分0秒为止,过了多少秒
import time
print time.mktime(time.strptime('20170301','%Y%m%d'))
输出结果:
1488297600.0
time.localtime():
将时间戳转换为时间元祖
import time
print time.localtime(1488297600.0)
输出结果:
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=60, tm_isdst=0)
time.strftime:
将时间元祖复原为普通字符时间,同样注意需要指定字符时间的格式
import time
print time.strftime('%Y%m%d',time.localtime(1488297600.0))
输出结果:
20170301
求当前时间:datetime.now()
from datetime import datetime, timedelta
print datetime.now()
print (datetime.now()).strftime('%Y%m%d')
print (datetime.now()).strftime('%Y/%m/%d %H:%M:%S')
输出结果:
2017-03-01
09:48:23.104000
20170301
2017/03/01 09:48:23
时间运算:timedelta(weeks, days, hours, second, milliseconds, microseconds) ,参数可选,默认为0
from datetime import datetime, timedelta
print (datetime.now()-timedelta(days=1)).strftime('%Y%m%d') # 1天前的日期
print (datetime.now()+timedelta(days=100)).strftime('%Y%m%d') # 100天后的日期
print (datetime.now()-timedelta(hours=1)).strftime('%Y/%m/%d %H:%M:%S') #求一小时前的时间
输出结果:
20170228201706092017/03/01 08:42:45
字符时间常用格式:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,59].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.
from datetime import datetime
print (datetime.now()).strftime('%Y')
print (datetime.now()).strftime('%m')
print (datetime.now()).strftime('%d')
print (datetime.now()).strftime('%H')
print (datetime.now()).strftime('%M')
print (datetime.now()).strftime('%S')
print (datetime.now()).strftime('%a')
print (datetime.now()).strftime('%A')
print (datetime.now()).strftime('%b')
print (datetime.now()).strftime('%B')
print (datetime.now()).strftime('%c')
print (datetime.now()).strftime('%I')
print (datetime.now()).strftime('%p')
输出结果:
2017
03
01
09
56
30
Wed
Wednesday
Mar
March
03/01/17 09:56:30
09
AM