timestamp
- 每个时间戳都以自从1970年1月1日0时0分0秒(历元)到现在一共经历了多少秒。
- 时间间隔是以秒为单位的浮点小数(留意java前端js的单位是毫秒)。
- 时间戳最适合做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
import time
print(time.time()) # second
print(int(time.time() * 1000)) # millisecond
什么是时间元组? 很多 Python 函数用一个元组装起来的9组数字处理时间:
Num | Column | Value |
---|---|---|
0 | Year | 2008 |
1 | Month | 1 to 12 |
2 | Day | 1 to 31 |
3 | Hour | 0 to 23 |
4 | Minute | 0 to 59 |
5 | Second | 0 to 61 (60或61 是闰秒) |
6 | 一周的第几日 | 0到6 (0是周一) |
7 | 一年的第几日 | 1到366 (儒略历) |
8 | 夏令时 | -1, 0, 1, -1是决定是否为夏令时的旗帜 |
上述也就是 struct_time 对象。
function
- time.time(),返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
- time.asctime([tupletime]),接受时间元组并返回一个可读的形式为”Tue Dec 11 18:07:14 2008”(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
- time.strftime(fmt[,tupletime]),接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
- time.sleep(secs),推迟调用线程的运行,secs指秒数。
- time.strptime(str,fmt=‘%Y-%m-%d %H:%M:%S’),根据fmt的格式把一个时间字符串解析为时间元组。
- time.mktime(tupletime),接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
import time
t = time.time() # 当前时间戳
print(t) # 1550554859.3806598 原始时间数据
print(int(t)) # 1550554859 秒级时间数据
print(round(t*1000)) # 1550554859380 毫秒级别数据
print(time.localtime()) # struct_time 对象
# time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=10, tm_min=54, tm_sec=31, tm_wday=3, tm_yday=346, tm_isdst=0)
# 使用 asctime 方法获取可读的时间串
print(time.asctime()) # Thu Dec 12 11:04:20 2019
print(time.asctime(time.localtime())) # 将 struct_time 对象转换成可读的形式。
# 格式化成2019-12-12 11:13:59形式,默认传入当前时间。
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Thu Dec 12 11:15:01 2019形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
# 将格式字符串转换为时间戳
a = "Thu Dec 12 11:16:41 2019"
b = "2019-12-12 11:15:38"
print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
print(time.mktime(time.strptime(b,"%Y-%m-%d %H:%M:%S")))
# 计算程序运行时间
start = time.time()
time.sleep(6)
end = time.time() - start
print('程序运行耗时:%0.2f' % (end))
python中时间日期格式化符号:
符号 | 含义 |
---|---|
%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) |
%a | 本地简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化的月份名称 |
%B | 本地完整的月份名称 |
%c | 本地相应的日期表示和时间表示 |
%j | 年内的一天(001-366) |
%p | 本地A.M.或P.M.的等价符 |
%U | 一年中的星期数(00-53)星期天为星期的开始 |
%w | 星期(0-6),星期天为星期的开始 |
%W | 一年中的星期数(00-53)星期一为星期的开始 |
%x | 本地相应的日期表示 |
%X | 本地相应的时间表示 |
%Z | 当前时区的名称 |
%% | %号本身 |