2022年 11月 5日

python时间和字符串的格式化互相转换

python经常需要时间格式转化,可以采用 time或者datetime模块进行处理,常用的有以下几个函数:
(1)strftime 日期转字符串
(2)strptime字符串转日期
(3)timedelta 时间差

本文采用import datetime 的方式 进行时间处理。

1)格式化输出时间(时间转字符串)和strptime字符串转日期,strftime和strptime 常用参数:

# %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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2)获取当前时间

#获取当前时间
now=datetime.datetime.now()
print(now,type(now))
  • 1
  • 2
  • 3

3) 时间转字符串 格式化时间

strtime = now.strftime('%Y-%m-%d %H:%M:%S')
print(strtime, type(strtime))
  • 1
  • 2

4) 字符串转时间

date1 = datetime.datetime.strptime('2018-12-01 01:32:25', '%Y-%m-%d %H:%M:%S')
print(date1)
#或者

date2 = datetime.datetime.strptime(strtime, '%Y-%m-%d %H:%M:%S')
print(date2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5)间隔天数和秒

#间隔天数
deltaday = (date2 - date1).days
print("间隔天数 ", deltaday)
#间隔秒数
deltasecond = (date2 - date1).seconds
print("间隔秒数 ", deltasecond)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6)当期时间加减天数 使用timedelta

#当前时间减去时间间隔
repair_time = now + datetime.timedelta(days=-2)
#格式化输出
print(repair_time)
  • 1
  • 2
  • 3
  • 4

eg:

# 将'2021/3/30' 转成'20210330'
s = '2021/3/30'
s = datetime.datetime.strptime(s, '%Y/%m/%d').date()
print(str(s).replace('-', ''))


# 将'2021-04-01T00:00:00' 转成 '2021-04-01'
a ='2021-04-01T00:00:00'
a = datetime.datetime.strptime(a, '%Y-%m-%dT%H:%M:%S').date()
print(str(a))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10