一、time模块
常用方法
import time
time.time() # 返回当前时间的时间戳,float 类型
# 1559549440.890066
time.localtime() # 返回本地时间
# time.struct_time(tm_year=2019, tm_mon=6, tm_mday=3,
# tm_hour=16, tm_min=11, tm_sec=52, tm_wday=0, tm_yday=154, tm_isdst=0)
time.gmtime() # 返回标准时间(格林威治时间)
# time.struct_time(tm_year=2019, tm_mon=6, tm_mday=3, tm_hour=8,
# tm_min=12, tm_sec=19, tm_wday=0, tm_yday=154, tm_isdst=0)
time.sleep(3)
# 休眠 3 秒
将时间戳转换为字符串
import time
# time.strftime()方法能够将本地时间格式化输出为字符串
time.strftime('%Y-%m-d %H:%M:%S', time.localtime())
# '2019-06-d 16:12:51'
# 先将一个时间戳转换为本地时间,然后在将本地时间格式化输出为字符串,格式化输出的格式是可以自己指定的
time.strftime('%Y-%m-%d', time.localtime(time.time()))
# '2019-06-03'
time.strftime('%Y%m%d', time.localtime(time.time()))
# '20190603'
将字符串转换为时间戳
import time
tm = '2019-06-03 17:00:00'
# 先将时间字符串转换为时间数组
ret = time.strptime(tm, '%Y-%m-%d %H:%M:%S')
# time.struct_time(tm_year=2019, tm_mon=6, tm_mday=3, tm_hour=17, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=154, tm_isdst=-1)
# 再将时间数组转换为时间戳
res = time.mktime(ret)
# 1559552400.0
二、datetime模块
datime
是time
的升级版,可以对date
(日期)、time
(时间)、datetime
(日期时间)等三种时间进行管理。
datetime
获取当前本地时间
import datetime
datetime.datetime.now() # 返回当前本地时间
# datetime.datetime(2019, 6, 3, 16, 22, 0, 843885)
datetime.datetime.today() # 返回当前日期和时间的对象
# datetime.datetime(2019, 6, 3, 16, 22, 26, 974874)
change_year = datetime.datetime.now().replace(year=2018)
print(change_year) # 替换当前时间
# 2018-04-02 17:43:43.479334
timedelta()
函数的使用
print(datetime.datetime.now() + datetime.timedelta(days=-3)) # 当前时间减三天
# 2019-03-30 17:44:10.878591
print(datetime.datetime.now() + datetime.timedelta(hours=-3)) # 当前时间减三小时
# 2019-04-02 14:44:30.441102
print(datetime.datetime.now() + datetime.timedelta(minutes=-3)) # 当前时间减三分钟
# 2019-04-02 17:44:53.263803
print(datetime.datetime.now() + datetime.timedelta(seconds=-3)) # 当前时间减三秒
print(datetime.datetime.now() + datetime.timedelta(milliseconds=-3)) # 当前时间减三毫秒
date
、datetime
和string
的相互转换
string
转datetime
import datetime
value = '2019/06/03'
datetime.datetime.strptime(value, '%Y/%m/%d')
datetime
转string
import datetime
str(datetime.datetime.now())
# '2019-06-03 16:25:22.780047'
dt.strftime('%Y-%m-%d') # 参数为格式化样式
# '2019-06-03'
dt.strftime('%Y%m%d') # 可以自己制定相应的格式化样式
# '20190603'
dt.strftime('%w') # 输出当前是周几
# '1' 表示周一
datetime
转时间戳
import datetime
str = '2012-11-19 12:03:20'
date_time = datetime.datetime.strptime(str,'%Y-%m-%d %H:%M:%S') # string转datetime
time_time = time.mktime(date_time.timetuple()) # 将datetime 转换为时间戳
print(time_time)
# 1353254400.0
时间戳转string
import datetime
str = '2012-11-19 12:03:20'
date_time = datetime.datetime.strptime(str,'%Y-%m-%d %H:%M:%S') # string转datetime
time_time = time.mktime(date_time.timetuple()) # datetime 转时间戳
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time_time)) # 时间戳转字符串
# '2012-11-19 12:03:20'
date
转datetime
import datetime
date = datetime.date.today()
# datetime.date(2019, 4, 2)
datetime.datetime.strptime(str(date),'%Y-%m-%d') #将date转换为str,在由str转换为datetime
# datetime.datetime(2019, 4, 2, 0, 0)