Python中的time与datetime

一.time模块简介

time模块--时间获取和转换
time模块提供各种时间相关的功能
与时间相关的模块有:time,datetime,calendar
这个模块中定义的大部分函数是调用C平台上的同名函数实现

二.术语与约定

1.时间戳(timestamp)

时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)

2.UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是世界标准时间.在我国为UTC+8
3.DST(Daylight Saving Time) 即夏令时
4.时间元组(time.struct_time对象, time.localtime方法)
5.字符串时间(time.ctime)

三.常用的时间转换

1.元组的时间转换为时间戳

import time
tuple_time = time.localtime()
print(time.mktime(tuple_time))

2.元组的时间转换字符串格式

import  time
print(time.strftime('%m-%d'))
print(time.strftime('%Y-%m-%d'))
print(time.strftime('%T'))
print(time.strftime('%F'))

3.字符串格式转换为元组

import time
s = '2018-10-10'
print(time.strptime(s, '%Y-%m-%d'))
s_time = '12:12:30'
print(time.strptime(s_time, '%H:%M:%S'))

四.datetime模块

  • date 以公历形式储存日历日期(年、月、日)
  • time 将时间储存为时、分、秒、毫秒
  • datetime 储存日期和时间
  • timedelta 表示两个datetime值之间的差(日、秒、毫秒)

1.获取当前的日期并且以字符串方式返回

import datetime
print(datetime.today())

这里写图片描述
2.对象加或者减一个时间间隔, 返回一个新的日期对象

from datetime import  datetime
from datetime import  timedelta
d = datetime.today()
print(d)
delta = timedelta(days=3)
print(d - delta)

这里写图片描述

五.应用案例

需求:
    1. 获取当前主机信息, 包含操作系统名, 主机名, 内核版本, 硬件架构等
    2. 获取开机时间和开机时长;
    3. 获取当前登陆用户
import  os
import psutil
import time

from datetime import datetime

from psutil._common import suser

info = os.uname()

print("1. 主机信息".center(50, '*'))
print("""
    操作系统: %s, 
    主机名: %s, 
    内核版本: %s, 
    硬件架构: %s
""" %(info.sysname, info.nodename, info.release, info.machine))


# 2.
print("2. 开机时间".center(50, '*'))
# 获取开机时间的时间戳, 需要安装psutil模块;
boot_time = psutil.boot_time()
# 将时间戳转换为字符串格式, 两种方法, 任选一种l
# print(time.ctime(boot_time))
boot_time  = datetime.fromtimestamp(boot_time)

# 获取当前时间
now_time = datetime.now()



# 获取时间差
delta_time = now_time-boot_time
delta_time = str(delta_time).split('.')[0]
print("""
    开机时间: %s
    当前时间: %s
    开机时长: %s
""" %(boot_time,now_time, delta_time))


# 3.
print("3. 当前登陆用户".center(50, '*'))

# 获取当前登陆用户的详细信息, 需求是获取用户名和登陆主机;
users = psutil.users()

# 获取需要的信息
users = {"%s %s" %(user.name, user.host) for user in users}

# 实现信息的去重
for user in users:
    print("\t  %s" %(user))

这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/82729628