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组数字处理时间:

NumColumnValue
0Year2008
1Month1 to 12
2Day1 to 31
3Hour0 to 23
4Minute0 to 59
5Second0 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)
%H24小时制小时数(0-23)
%I12小时制小时数(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当前时区的名称
%%%号本身