前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础模块学习02

Python基础模块学习02

作者头像
Linux运维技术之路
发布2022-06-07 09:37:45
4330
发布2022-06-07 09:37:45
举报

Python 程序能用很多方式处理日期和时间:例如time,datetime等。

time 模块

time是归类在常规操作系统服务中,它提供的功能更加接近于操作系统层面。模块通过系统底层的计时器获取自 epoch 以来经过的总秒数(可能为浮点数),即我们常说的 POSIX 时间戳(timestamp)

其所能表述的日期范围被限定在1970-2038之间

如果需要表述范围之外的日期,可能需要考虑使用datetime模块更好。

常用命令

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:utf-8 -*-
import time
print(time.time()) #获取的是时间戳1640656968.803966
print(time.localtime()) #time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=11, tm_min=18, tm_sec=4, tm_wday=1, tm_yday=362, tm_isdst=0)
#print(time.localtime(time.time())) #获取time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=11, tm_min=7, tm_sec=15, tm_wday=1, tm_yday=362, tm_isdst=0)
print(time.asctime(time.localtime(time.time()))) # Tue Dec 28 11:12:14 2021

# 获取格式化时间
print(time.strftime('%Y-%m-%d')) # 获取年月日 2021-12-28
print(time.strftime("%Y-%m-%d %H:%M:%S")) #获取年月日 时分秒 2021-12-28 11:16:02
# print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) #获取年月日 时分秒 2021-12-28 11:16:02
print(time.mktime(time.localtime())) # 将time.struct_time转换为时间戳

start=time.perf_counter()
time.sleep(2)
end=time.perf_counter()
t=end-start
print("执行时间:",t)

代码语言:javascript
复制
1、time.sleep(sec):暂停调用线程的执行,暂停时间为给定的秒数。经常用于测试模拟,实际的暂停时间可能超出给定秒数
2、time.localtime([sec]):将一个时间戳转化成一个当时时区的struct_time,如果sec参数未输入,则以当前时间为转化标准
3、time.strftime(format[,t]):将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
4、time.time():返回当前时间的时间戳(以秒表示的浮点数)
5、time.mktime(t):将一个struct_time转换为时间戳
6、time.gmtime([sec]):将一个时间戳转化为UTC时区(0时区)的struct_time
7、time.clock():不同系统含义不同。UNIX——返回进程时间,WINS第一次调用返回进程运行的实际时间,第二次调用是自第一次调用以后到现在的运行时间
8、time.asctime([t])把一个时间的元组或者struct_time表示为“Sun Jun 20 23:21:05 1993”,如果无参数,则会把time.localtime()作为参数传入
9、time.ctime([sec]):把一个时间戳转化为time.asctime()的形式,如果无参数或者为None时,则会把time.time()作为参数传入。它的作用相当于time.asctime(time.localtime(sec))
10、time.strftime(format[,t]):把一个代表时间的元组或者struct_time转化为格式化的时间字符串。如果t为指定,将传入11、time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出
11、time.perf_counter() 是计算较短时间间隔的更好方法,结果更为精确,在计算执行时间时可替代上述的 time.time()

datetime模块

datetime模块中常用的类是:

  • date类
  • time类
  • datetime类
  • timedelta类
datetime类学习
代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:utf-8 -*-
# 针对时间的
from datetime import datetime
now=datetime.now()
print(datetime.now()) # 获取当前日期和时间

# current date and time
now = datetime.now()
t = now.strftime("%H:%M:%S")
print("time:", t)
s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("s1:", s1)

s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
a = datetime(2020, 12, 28, 23, 55, 59, 342380)
print("年 =", a.year)
print("月 =", a.month)
print("日 =", a.day)
print("时 =", a.hour)
print("份 =", a.minute)
print("时间戳 =", a.timestamp())
date类学习
代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:utf-8 -*-
# 针对日期操作
from datetime import date
today=date.today()  
print("当前日期",today) # 当前日期 2021-12-28
print('年:',today.year)
print('月:',today.month)
print('日:',today.day)

timestamp = date.fromtimestamp(1576244364)
print("日期 =", timestamp) ##日期 = 2019-12-13
time类学习
代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:utf-8 -*-
# 针对时间的
from datetime import time
a = time()
print('a=',a) # a= 00:00:00
b = time(11,22,33)
print('b=',b)
c=time(hour=7,minute=20,second=2)
print("c=",c)
d = time(11, 34, 56, 234566)
print("d =", d)

a = time(11, 34, 56)

print("小时=", a.hour)
print("分钟=", a.minute)
print("秒=", a.second)
print("微秒=", a.microsecond)
timedelta类学习
代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:utf-8 -*-
# 计算2个对象之间的时间差
from datetime import timedelta
t1 = timedelta(weeks=2,days=5,hours=1,seconds=10)
t2 = timedelta(days=4,hours=11,minutes=4,seconds=54)
t3 = t1 - t2
print ("t3=",t3)

#打印负timedelta对象
t1 = timedelta(seconds = 33)
t2 = timedelta(seconds = 54)
t3 = t1 - t2

print("t3 =", t3)
print("t3 =", abs(t3))

#获取总的时间,单位为秒
t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423)
print("total seconds =", t.total_seconds())
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux运维技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • time 模块
  • datetime模块
    • datetime类学习
      • date类学习
        • time类学习
          • timedelta类学习
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档