time模块和datetime模块

time模块

import time

时间戳

使用time.time()来打印时间,这个时间是从1970-01-01 00:00:00开始进行计时,以秒进行计算

stamp_time = time.time()
print(stamp_time)
1560322871.5570526

格式化时间

使用time.strftime()方法,需要设置打印时间的格式

  1. %Y 代表year
  2. %m 代表month
  3. %d 代表day
  4. %H 代表hour
  5. %M 代表minutes
  6. %S 代表second
  7. %X 等同于%H:%M:%S
formate_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formate_time)
formate_time = time.strftime('%Y-%m-%d %X')
print(formate_time)
2019-06-12 15:15:12
2019-06-12 15:15:12

结构化时间

使用time.localtime()表示本地时间,

time.gmtime()表示0时区的时间

它打印的是以元组的形式把时间元素列出来(年,月,日,时,分,秒,一周中第几天,一年中第几天,夏令时)

struct_time = time.localtime()  # 本地时间
print(struct_time)
print('*'*50)
struct_time = time.gmtime()  # 0时区时间
print(struct_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=2, tm_sec=33, tm_wday=2, tm_yday=163, tm_isdst=0)
**************************************************
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=7, tm_min=2, tm_sec=33, tm_wday=2, tm_yday=163, tm_isdst=0)

时间格式间的转化

结构化时间转化为时间戳

struct_time = time.localtime()
print(struct_time)
print("*"*50)
stamp_time = time.mktime(struct_time)
print(stamp_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=4, tm_sec=2, tm_wday=2, tm_yday=163, tm_isdst=0)
**************************************************
1560323042.0

结构化时间转化为格式化时间

struct_time = time.localtime()
print(struct_time)
print("*"*50)
formate_time = time.strftime('%H:%M:%S', struct_time)
print(formate_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=4, tm_sec=30, tm_wday=2, tm_yday=163, tm_isdst=0)
**************************************************
15:04:30

时间戳转化为结构化时间

stamp_time = time.time()
print(stamp_time)
print('*'*50)
struct_time = time.localtime(stamp_time)
print(struct_time)
1560323130.1727746
**************************************************
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=5, tm_sec=30, tm_wday=2, tm_yday=163, tm_isdst=0)

格式化时间转化为结构化时间

formate_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formate_time)
print('*'*50)
struct_time1 = time.strptime(formate_time, '%Y-%m-%d %H:%M:%S')
print(struct_time1)
2019-06-12 15:06:55
**************************************************
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=6, tm_sec=55, tm_wday=2, tm_yday=163, tm_isdst=-1)

其它用法

延迟时间

使用time.sleep()方法

start_time = time.time()
time.sleep(3)
end_time = time.time()
print(end_time-start_time)
3.000251054763794

datetime模块

datetime模块一般使用于时间的加减

  1. 打印当前时间
import datetime


now = datetime.datetime.now()
print(now)
print(type(now))
2019-06-12 15:39:51.744358
<class 'datetime.datetime'
import time

print(datetime.date.fromtimestamp(time.time()))
2019-06-12
  1. 当前时间加3天
print(now + datetime.timedelta(3))   # 默认为day = 3
2019-06-15 15:39:51.744358
  1. 当前时间减3天
print(now + datetime.timedelta(-3))
print(now - datetime.timedelta(3))
2019-06-09 15:39:51.744358
2019-06-09 15:39:51.744358
  1. 当前时间加3小时
print(now + datetime.timedelta(hours=3))
2019-06-12 18:39:51.744358
  1. 当前时间加30分钟
print(now + datetime.timedelta(minutes=30))
2019-06-12 16:09:51.744358
  1. 当前时间加120秒
print(now + datetime.timedelta(seconds=120))
2019-06-12 15:41:51.744358
原文地址:https://www.cnblogs.com/Hades123/p/11019675.html