时间模块

时间模块在编程实际应用中必不可少。时间表示的类型也多种多样,大致分为以下三种:
1)时间戳
2)字符串的时间
3)元组类型时间
应用 不同的时间类型需要导入不同的时间模块,如:
时间戳:time.time()
字符串:time.ctime()
元组类型时间:time.localtime()

一、时间表示的几种类型:

  1. 时间戳
    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。
import time
print('时间戳:',time.time())

时间戳类型显示时间
2. 字符串类型
字符串类型时间比较常用比较简单

print('字符串类型时间:',time.ctime())

字符串类型时间表示
3. 元组类型时间表示
元组类型就是把时间用元组形式表示出来

print('元组类型时间:',time.localtime())
info = time.localtime()
print('显示年:',info.tm_year) #显示年
print('显示日:',info.tm_yday) #显示日  [元组类型时间表示

在这里插入图片描述
二、时间不同类型之间的转换
以获取/etc/passwd 的修改时间为例,首先编写代码最后一次修改时间,格式为时间戳格式:

import os
pwd_time = os.path.getatime('/etc/passwd')
print(pwd_time)

将时间戳转换为字符串类型

print('文件修改时间:',time.ctime(pwd_time))

将时间戳转化为元组类型

print('时间戳转化为元组类型:',time.localtime(pwd_time))

在这里插入图片描述
将元组类型时间转换为时间戳

tuple_time = time.localtime()
print("元组类型时间转换为时间戳:",time.mktime(tuple_time))

元组类型转化为时间戳
将元组的时间转换为字符串时间(可自定义格式)

tuple_time = time.localtime()
print("元组——字符串:年-月-日:",time.strftime('%Y-%m-%d', tuple_time))
print("元组——字符串:年-月-日 时:分:秒:",time.strftime('%Y-%m-%d %H:%M:%S', tuple_time))

元组转为字符串
将字符串时间转换为元组

mytime="2019/01/15"
print('字符串转化为元组:',time.strptime(mytime,'%Y/%m/%d'))

字符串类型转化为元组类型
三、计算时间间隔
导入所需模块:

import os
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta	#时间间隔

如何计算三天前的时间和三天后的时间

d = date.today()
delta = timedelta(days=3)	#设置间隔时间 days=3
print('三天后',d + delta)
print('三天前',d - delta)

计算三天前和三天后的时间
如何计算两个小时之前和两个小时之后的时间

h=datetime.now()  #此刻时间
delta1=timedelta(hours=2)
print('两小时后',h + delta1)
print('两小时前',h - delta1)

计算两个小时前和两个小时后的时间
返回两个时间,计算两个时间之间的时间差

now_time = datetime.now()  #对象
pwd_time = os.path.getatime('/etc/passwd') #时间戳
print('当前时间:',now_time,'passwd文件最后一次修改时间',pwd_time)
pwd_time_obj=datetime.fromtimestamp(pwd_time)

delta = now_time - pwd_time_obj
print('时间差',delta)

计算两个时间的时间差
四、应用案例——系统监控
需求:
1. 获取当前主机信息, 包含操作系统名, 主机名, 内核版本, 硬件架构等
2. 获取开机时间和开机时长;
3. 获取当前登陆用户

import os
import psutil	#检测是否安装此模块,若无进行模块安装后再行导入
from datetime import date
from datetime import time
from datetime import datetime

1.获取主机信息

print("主机信息".center(20,'*'))
info = os.uname()
print("""
    操作系统:%s
    主机名:%s
    内核版本:%s
    硬件架构:%s
""" %(info.sysname,info.nodename,info.release,info.machine))	#此处变名名一定要和本机对应变量名一致

显示的主机信息中定义的变量名一定要和对应的本地主机信息名一致!
本地主机信息
获取的主机信息
2.获取开机信息:包括开机时间和开机时长
需要先安装第三方环境psutil

print("开机信息".center(50,'*'))
print("开机时间",psutil.boot_time())

print("开机信息".center(50, '*'))
boot_time = psutil.boot_time()   # 返回时间戳

# 将时间戳转换为datetime的时间
boot_time_obj = datetime.fromtimestamp(boot_time)
print(type(boot_time_obj))
print("开机时间: ",  boot_time_obj)
now_time = datetime.now()
delta_time = now_time - boot_time_obj
# print(type(delta_time))
print("开机时长: ", str(delta_time).split('.')[0])

获取开机信息
3.用户信息(获取当前登陆用户)

print("当前登陆用户".center(50,'*'))
login_users=psutil.users()
print({user.name for user in login_users})

当前登陆用户

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值