python 模块、time、datetime 导入使用(4.0)

2022-09-28 13:21:34 浏览数 (1)

导入第三方模块

导包的层级关系

  • 模块(module) 以文件为载体, 包含各类对象
  • 包(package) 以文件夹为载体, 包含了各类模块
  • 库(lib) 包含了各类包

import 库

from 库/模块 import 模块/函数

导包的命名冲突

通过as这个关键词来给当前模块/函数取个别名

代码语言:javascript复制
from datetime import datetime as p_datetime

时间模块time

调用的都是系统级的接口, 提供时间的访问和转换的功能

查看时间

获取当前时间

代码语言:javascript复制
# 有时区的
time.localtime()

返回的是一个time.struct_time对象

时间戳

代码语言:javascript复制
time.time()

时间的格式化输出

代码语言:javascript复制
now = time.localtime()
now = time.strftime("%Y-%m-%d %H:%M:%S", now)
print(now)

# 可以省略时间对象
now = time.strftime("%Y-%m-%d %H:%M:%S")

运算

将时间对象转换为list, 对相应的时间重新赋值后, 通过time.struct_time生成一个新的时间对象

代码语言:javascript复制
time_list = list(time.localtime())
time_list[2] = 4
time.struct_time(time_list)

时间休眠

当前程序休眠n秒

代码语言:javascript复制
time.sleep(3)

时间模块datetime

封装了time, 提供了更高级和更友好的接口

查看时间

代码语言:javascript复制
# 获取计算机时间, 返回的是一个datetime.datime对象
datetime.datetime.today()


# 获取指定时区的时间
datetime.datetime.now(tz=None)

# 获取utc时间
datetime.datetime.utcnow()

时间格式的转换

datetime.datetime -> str

代码语言:javascript复制
now = datetime.datetime.now(tz=None)
now.strftime("%Y-%m-%d %H:%M:%S")

str -> datetime.datetime

代码语言:javascript复制
>>> now
'2021-01-03 23:38:26'
>>> datetime.datetime.strptime(now, "%Y-%m-%d %H:%M:%S")
datetime.datetime(2021, 1, 3, 23, 38, 26)

datetime.datetime -> timestamp

代码语言:javascript复制
>>> now
datetime.datetime(2021, 1, 3, 23, 40, 45, 749240)
>>> now.timestamp()
1609688445.74924

timestamp -> datetime.datetime

代码语言:javascript复制
>>> ts
1609688445.74924
>>> datetime.datetime.fromtimestamp(ts, tz=None)
datetime.datetime(2021, 1, 3, 23, 40, 45, 749240)

时间运算

timedelta

只作用于datetime.datetime格式

代码语言:javascript复制
# 选中目标模块  ctrl B / command B 跳转到模块源码     
    def __new__(cls, days=0, seconds=0, microseconds=0,
                milliseconds=0, minutes=0, hours=0, weeks=0):
代码语言:javascript复制
>>> from datetime import timedelta
>>> now   timedelta(hours=-1)
datetime.datetime(2021, 1, 3, 22, 40, 45, 749240)

0 人点赞