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))