time与datetime模块 - 图1


一:time

时间分为三种格式:

1、时间戳:从1970年到现在经过的秒数 作用:用于时间间隔的计算

  1. import time
  2. print(time.time()) # 1607425475.5931325

2、按照某种格式显示的时间:2020-03-30 11:11:11 作用:用于展示时间

  1. import time
  2. print(time.strftime('%Y-%m-%d %H:%M:%S %p')) # 2020-12-08 19:04:35 PM
  3. print(time.strftime('%Y-%m-%d %X')) # 2020-12-08 19:04:35

3、结构化的时间 作用:用于单独获取时间的某一部分

  1. import time
  2. res=time.localtime() # 中国时间,东8区时间
  3. print(res) # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=8, tm_hour=20, tm_min=43, tm_sec=7, tm_wday=1, tm_yday=343, tm_isdst=0)
  4. print(res.tm_year) # 2020

了解:

  1. import time
  2. res=time.gmtime() # 世界标准时间
  3. print(res) # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=8, tm_hour=12, tm_min=43, tm_sec=7, tm_wday=1, tm_yday=343, tm_isdst=0)

格式化字符串的时间格式

  1. import time
  2. print(time.strftime('%a')) # Tue # 周几缩写
  3. print(time.strftime('%A')) # Tuesday # 周几
  4. print(time.strftime('%b')) # Dec # 月份缩写
  5. print(time.strftime('%B')) # December # 月份
  6. print(time.strftime('%c')) # Tue Dec 8 19:30:55 2020 # 周 月 日 时间 年
  7. print(time.strftime('%d')) # 08 # 日
  8. print(time.strftime('%H')) # 19 # 时---24小时时钟
  9. print(time.strftime('%I')) # 07 # 时---12小时时钟
  10. print(time.strftime('%j')) # 343 # 一年的第几天
  11. print(time.strftime('%m')) # 12 # 月份
  12. print(time.strftime('%M')) # 39 # 分钟
  13. print(time.strftime('%p')) # PM # 上午、下午
  14. print(time.strftime('%S')) # 45 # 秒
  15. print(time.strftime('%U')) # 49 # 一年的周数(星期日是一周的第一天)
  16. print(time.strftime('%w')) # 2 # 以小数形式表示的工作日[0(星期日),6]
  17. print(time.strftime('%W')) # 49 # 一年的周数(星期一是一周的第一天)
  18. print(time.strftime('%x')) # 12/08/20 # 月/日/年
  19. print(time.strftime('%X')) # 20:01:05 # 时:分:秒
  20. print(time.strftime('%y')) # 20 # 世纪
  21. print(time.strftime('%Y')) # 2020 # 年
  22. print(time.strftime('%z')) # +0800 # 当地时区名称
  23. print(time.strftime('%Z')) # 中国标准时间 # 当地时区名称
  24. print(time.strftime('%%')) # % # 本身

二:datetime

时间加减

  1. import datetime
  2. import time
  3. print(datetime.datetime.now()) # 返回 2016-08-19 12:47:03.941925
  4. print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19
  5. print(datetime.datetime.now() )
  6. print(datetime.datetime.now() + datetime.timedelta(3)) # 当前时间+3天
  7. print(datetime.datetime.now() + datetime.timedelta(-3)) # 当前时间-3天
  8. print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 当前时间+3小时
  9. print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 当前时间+30分
  10. c_time = datetime.datetime.now()
  11. print(c_time.replace(minute=3,hour=2)) # 时间替换

时间格式的转换

image.png

  1. # 结构化的时间===》时间戳
  2. import time
  3. s_time=time.localtime()
  4. print(s_time) # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=8, tm_hour=20, tm_min=31, tm_sec=21, tm_wday=1, tm_yday=343, tm_isdst=0)
  5. print(time.mktime(s_time)) # 1607430681.0
  6. # 时间戳===》结构化的时间
  7. tp_time=time.time()
  8. print(tp_time) # 1607431090.0502841
  9. print(time.localtime(tp_time)) # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=8, tm_hour=20, tm_min=38, tm_sec=10, tm_wday=1, tm_yday=343, tm_isdst=0)
  10. # 结构化的时间===》格式化字符串形式的时间
  11. print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2020-12-08 20:50:53 # 默认后面加了localtime
  12. print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) # 2020-12-08 20:50:53
  13. # 格式化字符串形式的时间===》结构化的时间
  14. print(time.strptime('2020-12-08 20:50:53', '%Y-%m-%d %H:%M:%S')) #time.struct_time(tm_year=2020, tm_mon=12, tm_mday=8, tm_hour=20, tm_min=50, tm_sec=53, tm_wday=1, tm_yday=343, tm_isdst=-1)
  1. # 需求:'2020-12-08 20:50:53'+7
  2. import time
  3. # format string--->struct_time--->timestamp
  4. struct_time = time.strptime('2020-12-08 20:50:53', '%Y-%m-%d %H:%M:%S')
  5. timestamp = time.mktime(struct_time) + 7 * 86400
  6. print(timestamp)
  7. # format string<---struct_time<---timestamp
  8. res = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
  9. print(res)

了解

time.sleep()

  1. import time
  2. time.sleep(3) # 程序沉睡3秒运行
  3. print('1111')

time.asctime()

image.png

  1. import time
  2. print(time.asctime()) # Tue Dec 8 21:31:55 2020
  3. print(time.strftime('%c')) # Tue Dec 8 21:31:55 2020
  4. # 两种方法都可以做到

.now() .utcnow()

  1. import datetime
  2. print(datetime.datetime.now()) # 2020-12-08 22:32:09.230375 # 中国标准时间
  3. print(datetime.datetime.utcnow()) # 2020-12-08 14:32:09.230375 # 世界标准时间

.fromtimestamp()

  1. import datetime
  2. # 直接把时间戳改为格式化字符串格式
  3. print(datetime.datetime.fromtimestamp(3333333)) # 1970-02-08 21:55:33