1、将字符串格式时间转化成时间元组:
t1 = time.strptime('2019-09-18 17:04:00', '%Y-%m-%d %H:%M:%S') print t1 time.struct_time(tm_year=2019, tm_mon=9, tm_mday=18, tm_hour=17, tm_min=4, tm_sec=0, tm_wday=2, tm_yday=261, tm_isdst=-1)
2、获取当前时间元组:
t2 = time.localtime(time.time()) print t2 time.struct_time(tm_year=2019, tm_mon=9, tm_mday=19, tm_hour=10, tm_min=36, tm_sec=17, tm_wday=3, tm_yday=262, tm_isdst=0)
2.1 按指定时间格式获取当前时间:
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
3、日期、时间比较:
有两种方式,第一种,将时间都转化成时间元组再进行比较:
print time.localtime(time.time()) < time.strptime('2019-09-18 17:04:00', '%Y-%m-%d %H:%M:%S') False
第二种是将时间转化成时间戳再比较:
t1_arr = time.strptime('2019-09-18 17:04:00', '%Y-%m-%d %H:%M:%S') t1 = time.mktime(t1_arr) #时间戳 t2 = time.time() #当前时间戳 print t1 > t2 False
4、将时间、日期元组转化成指定格式:
t1_arr = time.strptime('2019-09-18 17:04:00','%Y-%m-%d %H:%M:%S') t1 = time.strftime("%Y--%m--%d %H:%M:%S",t1_arr) print t1 2019--09--18 17:04:00
5、获取当前时间戳:
print int(time.time()) 1568861563.88
6、时间戳转化成时间元组:
now = time.time() #当前时间戳 print time.localtime(now) #时间元组 time.struct_time(tm_year=2019, tm_mon=9, tm_mday=19, tm_hour=11, tm_min=2, tm_sec=44, tm_wday=3, tm_yday=262, tm_isdst=0)
7、获取昨天、7天前时间:
import datetime from datetime import timedelta now = datetime.datetime.now() yesterday = now - timedelta(days=1) lastweek = now - timedelta(days=7) print(yesterday) print(lastweek) format_day = datetime.date.strftime(yesterday, '%Y-%m-%d %H:%M:%S') print(format_day)
8、时间戳转化成指定日期格式:
now = time.time() timeArray = time.localtime(now) date = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) print(date) # 2020-09-21 12:24:34
指定格式时间转化成标准格式时间:
datetime1 = "2020-Jul-13 08:20" print datetime1 datetime1 = datetime.datetime.strptime(datetime1, "%Y-%b-%d %H:%M") print datetime1 print datetime.date.strftime(datetime1, '%Y-%m-%d %H:%M:%S') 输出: 2020-Jul-13 08:20 2020-07-13 08:20:00 2020-07-13 08:20:00
时区转化:
当地时间转UTC时间,比如北京时间转UTC local_time = datetime.datetime.now() local_time.replace(tzinfo=pytz.utc).astimezone(pytz.timezone('Etc/GMT+8'))
时间常用格式:
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(0000-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 当前时区的名称 %% %号本身
时间加减:
#加一天: dt = datetime.datetime.strptime(req["endtime"], "%Y-%m-%d") req["endtime"] = (dt + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
#减一天: dt = datetime.datetime.strptime(req["endtime"], "%Y-%m-%d") req["endtime"] = (dt + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
五天前:
import datetime now = datetime.datetime.now() dt = now - datetime.timedelta(days=5) date = datetime.datetime.strftime(dt, '%Y-%m-%d') print(date)
五天后:
import datetime now = datetime.datetime.now() dt = now + datetime.timedelta(days=5) date = datetime.datetime.strftime(dt, '%Y-%m-%d') print(date)
转载请注明:永盟博客 » python关于时间处理汇总