去发现生活中的美好,记录生活中的点点滴滴

python关于时间处理汇总

python admin 1015℃

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关于时间处理汇总

喜欢 (5)

Warning: count(): Parameter must be an array or an object that implements Countable in E:\www\blog\wp-includes\class-wp-comment-query.php on line 405