0. 获取系统时间
datetime模块:
import datetime
i = datetime.datetime.now()
print ("当前的日期和时间是 %s" % i)
print ("ISO格式的日期和时间是 %s" % i.isoformat() )
print ("当前的年份是 %s" %i.year)
print ("当前的月份是 %s" %i.month)
print ("当前的日期是 %s" %i.day)
print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) )
print ("当前小时是 %s" %i.hour)
print ("当前分钟是 %s" %i.minute)
print ("当前秒是 %s" %i.second)
time模块:
import time
now = time.time()
1. 时间戳转时间
import time
# 十位时间戳
timestamp = 1515256614
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
# 十三位时间戳
timestamp = 1515256614999
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp/1000))
结果为 YYYY-mm-dd HH-MM-SS 格式的字符串
注意:十位时间戳精确到秒,十三位截止到毫秒。
注意:十位时间戳精确到秒,十三位截止到毫秒。
2. 时间转时间戳
# 字符串格式时间
dt = '2018-01-09 18:35:01'
int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
结果为十位时间戳。
3. 计算两个日期的时间差
import datetime
a = '2018-1-9 19:23:09'
b = '2018-1-6 05:42:32'
date_a = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S")
date_b = datetime.datetime.strptime(b, "%Y-%m-%d %H:%M:%S")
(date_a - date_b).seconds
结果为 timedelta 格式两日期相差的秒数,timedelta 还能用 days 查看相差天数。
4. 通过时间差获取时间
a = '2018-1-9 19:23:09'
date_a = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S")
date_b = date_a - datetime.timedelta(days=2, hours=4)
datetime.datetime.strftime(date_b, "%Y-%m-%d %H:%M:%S")
datetime.timedelta 参数还可以为 weeks,minutes,seconds。
总结
time 模块
时间戳转时间数组:time.localtime(timestamp)
时间数组转字符串时间:time.strftime("%Y-%m-%d %H:%M:%S", timearray)
字符串时间转时间数组:time.strptime(datetime, "%Y-%m-%d %H:%M:%S")
时间数组转时间戳:time.mktime(timearray)
datetime 模块
时间格式转字符串时间:datetime.datetime.strftime(date,"%Y-%m-%d %H:%M:%S")
字符串时间转时间格式:datetime.datetime.strptime(date, "%Y-%m-%d %H:%M:%S")
datetime.timedelta 可对时间格式进行 +,- 计算
补充
python时间日期格式化符号:
%y 两位年份
%I 12小时制
%a %A 星期名称
%b %B 月份名称
%j 年内第几天
%Z 时区名称
%% %本身