溪明轩

  • Python全栈开发
  • 三溪杂选
  • 爬虫快速入门
  • 首页
  • 文章归档
  • 关于页面

  • 搜索
consul ELK Loki M3DB Thanos TSDB federate ALertmanager PromQL Grafana prometheus nginx Rest Framework 热视图 ansible 网络安全 云盘 wiki Python 爬虫

22、时间模块

发表于 2020-12-10 | 分类于 Python模块 | 0 | 阅读次数 164

1、时间模块time

计算机时间分三种格式:

1.1、时间戳

从计算机元年1970年至今经过的秒数,计算机也只认时间戳这种格式,别的格式都是转给人看的!

>>> import time
>>> time.time
<built-in function time>  # time是内嵌函数
>>> time.time()
1607479061.271664  # 时间戳

时间戳多被用来计时

start = time.time()
time.sleep(3)
stop = time.time()
print(stop - start)

# 执行得到结果
3.000750780105591
1.2、格式化时间

strftime格式化输出日期,这也是我们最常见的格式;多被用于展示,如日志等!

# 百分号字母分别对应:年、月、日、小时、分钟、秒
>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2020-12-09 10:00:19'

另一种格式化时间,多见于外国

>>> time.asctime()
'Wed Dec  9 11:02:41 2020'
1.3、结构化时间

localtime结构化时间,将时间格式拆分开来!

# yday是今天已过去的天数;最后面的isdst是夏令时,也可以括号里填入参数获取单独的部分
>>> time.localtime()
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=9, tm_hour=10, tm_min=2, tm_sec=29, tm_wday=2, tm_yday=344, tm_isdst=0)
1.4、时间格式转换
1.4.1、结构化时间转换为时间戳
>>> time.mktime(time.localtime())
1607482054.0
1.4.2、时间戳转换为结构化时间
>>> time.localtime(time.time())
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=9, tm_hour=10, tm_min=54, tm_sec=35, tm_wday=2, tm_yday=344, tm_isdst=0)

图片来源于博客园:给你家马桶唱疏通

140297420200330094750339481328068.png

1.4.3、格式化时间转换为时间戳
>>> struct_time = time.strptime('1990-12-23 11:11:11','%Y-%m-%d %H:%M:%S')  #格式化转换为结构化
>>> timestamp = time.mktime(struct_time)  #结构化转换为时间戳
>>> print(timestamp)
661921871.0
1.5、时间运算

把上面的时间戳拿来直接进行数学运算即可

# time的时间运算过于麻烦,一般不用,下面会介绍datetime!
>>> timestamp + 7*24*3600  #往后10天
662526671.0

2、时间模块datetime

datetime是第三方模块

2.1、格式化时间
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2020, 12, 9, 10, 6, 38, 877955)
# 上面的格式显示太丑了,需要加上print打印才能跟time.time一样!
>>> print(datetime.datetime.now())
2020-12-09 10:16:32.822469

大家都知道世界时间已格林威治为标准,东西各分八大区,我们中国以上海东八区为准!世界标准时间为:

# 这是世界标准时间
>>> print(datetime.datetime.utcnow())
2020-12-09 03:17:04.318148
        
# 这是本地时间,差别就是时区!
>>> print(datetime.datetime.now())
2020-12-09 11:25:31.372415
2.2、时间运算

时间运算需要用到timedelta函数,不过不能用于年份级运算!

# 往后10天的时间
print(datetime.datetime.now() + datetime.timedelta(days=10))
# 执行得到结果
2020-12-19 10:33:41.112614

# 往后两周的时间
print(datetime.datetime.now() + datetime.timedelta(weeks=2))
# 执行得到结果
2020-12-23 10:32:46.685709
        
# 五天前的时间
print(datetime.datetime.now() + datetime.timedelta(days=-5))
# 执行得到结果
2020-12-04 10:34:18.310308
2.3、时间格式转换

fromtimestamp函数可以将时间戳转换为格式化时间,有两种转换方式!

# 第一种是将time.time当作参数传入
print(datetime.datetime.fromtimestamp(time.time()))
# 执行得到结果
2020-12-09 10:38:16.989391
        
# 第二种是直接输入时间戳秒数
print(datetime.datetime.fromtimestamp(999999999))
# 执行得到结果
2001-09-09 09:46:39
Donate comment here
三溪 微信支付

微信支付

三溪 支付宝

支付宝

  • 本文作者: 三溪
  • 本文链接: https://blog.sanxi.info/archives/2-2--shi-jian-mo-kuai
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请注明出处!
21、Python之模块基础
23、OS模块
  • 文章目录
  • 站点概览
三溪

三溪

作诗不作法

120 日志
23 分类
20 标签
RSS
Creative Commons
Links
  • halo官网
  • 玻璃之空
0%
© 2022 三溪
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4
世间微尘里 独爱茶酒中