python time库

一、简介:

时间戳:

  • 时间戳是指 1970 年 01 月 01 日 00 时 00 分 00 秒起至现在的总毫秒数。
  • 1970年之前的日期就无法以此表示。太遥远的日期也不行, UNIX 和 Windows 只支持到 2038 年。

为什么会生成13位的时间戳,13位的时间戳和10时间戳分别是怎么来的?

  • java的date默认精度是毫秒,也就是说生成的时间戳就是13位的,而像 c++ 或者 Python、php 生成的时间戳默认就是 10 位的,因为其精度是秒。

13位时间戳如何转换成10位时间戳?

  • 第一种:将13位的时间戳最后三位数字截取
  • 第二种:将13位时间戳除以1000取整。

Unix纪元时间:

  • 很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0时0分0秒是时间纪元,所以常说的UNIX时间戳是以1970年1月1日0时0分0秒为计时起点时间的。

UTC(协调世界时):

  • 世界统一时间、世界标准时间、国际协调时间。简称 UTC,在中国为 UTC+8(小时)

DST(夏令时):

  • 时间使用策略。人为的将时间调快一小时,可以使人早睡早起,减少照明量,以充分利用光照资源从而节约照明用电。

时间元组:

  • 以元组的方式表示时间,如:(2020, 1, 2, 3, 40, 50, 6, 7, 0)

时间元组对照表:

索引值属性
04位数(2020)
11~12
21~31
30~23
40~59
50~61(闰秒 1
6星期几0~6(0表示星期一)
7一年中的第几天1~366
8是否为夏令时0,1,-1(-1代表夏令时)

二、常用函数

time.asctime(test)
 // 接受时间元组,并以可读的形式返回“Thu Feb 20 02:20:20 2020“(2020年2月20日 星期四 2时20分20秒)的字符串

time.ctime()
 // 获取本地时间,并以可读的形式返回(“Thu Feb 20 02:20:20 2020“)

time.localtime()
 // 返回本地的时间(UTC+8)

time.localtime(0)
 // 返回到Unix纪元时间向后偏移0秒的时间,由于当前属于东八区所以+8小时(1970/1/1 8:0:0 星期四 一年中的第一天)

time.gmtime()
 // 返回本地的时间(UTC时间)

time.gmtime(0)
 // 返回Unix纪元时间向后偏移0秒的时间(1970/1/1 0:0:0 星期四 一年中的第一天)

time.time()
 // 返回当前时间的时间戳

time.strftime("%Y-%m-%d %H:%M:%S %A", test)
 // 格式化时间字符串

time.strptime('2020/2/20 2:20:20', "%Y/%m/%d %H:%M:%S")
 // 根据指定的格式把一个时间字符串解析为时间元组

test = time.strftime("%Y/%m/%d %H:%M:%S",time.localtime(time.time()))
 // 获取当前时间戳并转化为可读字符串

 格式说明
%Y四个数字表示的年份(2020)
%y两个数字表示的年份(20)
%j一年中的第几天(001-366)
 
%m月份(0, 12)
%b月份的英文单词缩写:如一月,则返回  ' Jan '
%B月份的英文单词全拼:如一月,则返回  ' January '
 
%d当前月的第几天(01-31)
 
%H以24小时制表示当前小时
%I以12小时制表示当前小时
%p返回上午(AM)或者下午(PM)
 
%M返回分钟数(0,59)
 
%S返回秒数(0,61)
 
星期%U返回现在是当前年的第几周(周日为第一天)
%W返回现在是当前年的第几周(周一为第一天)
%w返回当前是星期几(0~6),6表示星期天
%a星期的英文单词缩写:如星期一,则返回  ' Mon ' 
%A星期的英文单词全拼:如星期一,则返回  ' Monday ' 
 
其他%c返回本地相应的日期和时间如  ' Fri Feb 20 02:20:20 2020 '
%x日期的字符串表示  ' 02/20/20 '  
%X时间的字符串表示  ' 02:20:20 '  
%z用 +HHMM  或  -HHMM  表示距离格林威治(时间时)的时区偏移( H 代表十进制的小时数,M 代表十进制的分钟数)
%Z时区的名字(如果不存在,则返回空字符)

time.mktime(time.localtime())
 // 获取当前时间并转化为时间戳

time.timezone
 // 当地时区(未启动夏令时)距离格林威治(时间时)的偏移秒数(美洲 >0 ;大部分欧洲、亚洲、非洲 <=0)

time.tzname
 // 包含两个字符串的元组:

  • 第一个是当地非夏令时区的名称
  • 第二个是当地的 DST(夏令时) 时区的名称

time.sleep(5)
 // 程序暂停 5 秒后继续运行

time.perf_counter()
 // cpu计时器也是用于计算代码的执行时间


三、实例

1、以可读形式返回字符串

#  接收时间元组,并以可读的形式返回 “Thu Feb 20 02:20:20 2020“ 格式的字符串
test = (2020, 2, 20, 2, 20, 20, 0, 0, 0)
test_2 = time.asctime(test)
print (test_2)

2、接收时间元组,并转换为时间戳

#  接收时间元组,并转换为时间戳
test = (2020, 2, 20, 2, 20, 20, 0, 0, 0)
test_2 = time.mktime(test)
print (test_2)

3、以指定格式,格式化时间元组

#  以指定格式,格式化时间元组
test = (2020, 2, 20, 2, 20, 20, 0, 0, 0)
test_2 = time.strftime("%Y-%m-%d  %H:%M:%S  %A", test)
print (test_2)

4、从已格式化的字符串中提取时间元组

#  从已经格式化的字符串中提取时间元组
test1 = '2020/2/20 2:20:20'
time_format = "%Y/%m/%d  %H:%M:%S"
print (time.strptime(test1, time_format))

5、获取当前时间并转化为可读的字符串格式

#  获取当前时间并转化为可读的字符串格式
test = time.localtime(time.time())
time_format = "%Y/%m/%d %H:%M:%S"
test_2 = time.strftime(time_format, test)
print (test_2)

6、获取当前时间并转化为时间戳

#  获取当前时间并转化为时间戳
test = time.localtime()
test_2 = int(time.mktime(test))
print (test_2)

  1. 1 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值