python之datetime模块

datetime模块提供对于日期和时间进行简单或复杂的操作

一.datetime模块的用法

1.date类
datetime.date(year, month, day)
date.today()`:返回当前的本地日期
date.replace(year, month, day):返回一个相同值的data对象, 除了这些参数给关键字指定新的值.
date.weekday(): 返回day of the week. 星期一为0,星期日为6.
date.isoweekday(): 返回day of the week. 星期一为1,星期日为7.

from datetime import date
year, month, day= 2015, 4, 21
print(date(year, month, day))
print (date.today())
print(date.today().replace(year =2011 ,month = 1,day = 1))
print(date.today().weekday()) # 返回day of the week. 星期一为0,星期日为6.
print(date.today().isoweekday())# 返回day of the week. 星期一为1,星期日为7.

这里写图片描述
2,time类

from datetime import datetime
from datetime import time

print(time(8,2,2))  #新建一个time对象
t = time(8,8,8)
print(t.strftime('%Y-%m-%d %H:%M:%S'))  #格式化输出

这里写图片描述

3.datetime类
日期和时间的组合.提供year, month, day, hour, minute, second, microsecond, tzinfo.
datetime模块提供对于日期和时间进行简单或复杂的操作.
datetime.MINYEAR 和 datetime.MAXYEAR 模块常量表示datetime接受的范围

datetime.today() 返回当前本地datetime
datetime.now() 返回当前本地日期和时间, 如果可选参数tz为None或没有详细说明,这个方法会像today().
datetime.utcnow() 返回当前的UTC日期和时间, 如果tzinfo None ,那么与now()类似.
datetime.combine(a, b) 根据date和time返回一个新的datetime.

from  datetime import datetime
from datetime import datetime, date, time

a = date(2015, 4, 21)
b = time(14, 13, 34)
print(datetime.today())
print(datetime.now())
print(datetime.utcnow())
print(datetime.combine(a, b))

这里写图片描述

4.timedelta类
对象加或者减一个时间间隔,返回一个新的时间

from datetime import timedelta,date
##对象加或者减一个时间间隔,返回一个新的时间
d = date.today()
print(d)
delta=timedelta(days=3)
print(d - delta)
print(d + delta)

这里写图片描述

二.应用案例

系统监控

import  os
import psutil   ##需要安装该模块
# psutil是一个跨平台库(http://code.google.com/p/psutil/)
# 能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。
# 它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能
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]
now_time=str(now_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/forever_wen/article/details/82634593