【Python 基础教程】对时间日期对象的侃侃而谈

简介: 【Python 基础教程】对时间日期对象的侃侃而谈

前言


学习每一门语言多多少少会用到与时间相关的东西,咱们今天呢就谈一谈Python中的时间与日期对象。

在Python中时间对象一般可以用来测量效率。日期对象用来处理日期与字符串之间的关系。


一、时间对象🪐------------time


time模块使用的是C语言函数库中的函数。只能处理1970/1/1到2038/12/31之间的数据。



1.测量运行时间方法


①process_time()


主要作用就是返回当前进程处理器运行时间


②perf_counter()


返回性能计算器


③monotonic()


返回单项时钟


2.函数性能计算器


使用函数装饰器结合time对象,测试排序算法的性能。


from random import *
import time
# -----------------------装饰器函数用于计时-----------------------#
def timer(func):
    def weapper(*s):
        start=time.perf_counter()
        func(*s)
        end=time.perf_counter()
        print("用时:\t\t",end-start)
    return weapper
# -----------------------生成随机列表-----------------------#
def randomlist():
    return [randint(0,100) for x in range(10)]
# -----------------------冒泡排序-----------------------#
@timer
def sortA():
    lis=randomlist()
    print("随机生成的序列:",lis)
    i=0
    while i<len(lis):
        j=i+1
        while j<len(lis)-i:
            if lis[j]<lis[i]:
               lis[i],lis[j]=lis[j],lis[i]
            j+=1
        i+=1 
    print("排序后的序列:\t",lis)
# -----------------------选择排序-----------------------#
@timer
def sortB():
    lis=randomlist()
    print("随机生成的序列:",lis)
    i=0
    while i<len(lis):
        j=0
        while j<len(lis)-1:
            if lis[j]>lis[j+1]:
               lis[j+1],lis[j]=lis[j],lis[j+1]
            j+=1
        i+=1
    print("排序后的序列:\t",lis)
# -----------------------插入排序-----------------------#
'''
    将未排序数列插入左侧已排好队的序列。
    分析需要一个游标记录应该排序的位置,一个临时变量进行应该排序数据的临时保存
'''
@timer
def sortC():
    lis=randomlist()
    print("随机生成的序列:",lis)
    for i in range(1,len(lis)):
        temp = lis[i]
        j=i
        while lis[j-1]>temp:
            lis[j]=lis[j-1]
            j=j-1
            if j==0:
                break
        lis[j]=temp
    print("排序后的序列:\t",lis)
 # -----------------------主函数-----------------------#
def main():    
    print("-----------------冒泡排序---------------------")
    sortA()
    print("-----------------选择排序---------------------")
    sortB()
    print("-----------------插入排序---------------------")
    sortC()
if __name__=="__main__":
    main()  


二、日期对象🪐------------datetime


日期对象在处理字符串与日期对象的时候特别常用。所以呢咱们重点学习一下

Python中的字符串转日期、日期转字符串的方法。


1.格式化日期字符串时常用的占位符


%Y Year with century as a decimal number.

%m Month as a decimal number [01,12].

%d Day of the month as a decimal number [01,31].

%H Hour (24-hour clock) as a decimal number [00,23].

%M Minute as a decimal number [00,59].

%S Second as a decimal number [00,61].

%z Time zone offset from UTC.

%a Locale’s abbreviated weekday name.

%A Locale’s full weekday name.

%b Locale’s abbreviated month name.

%B Locale’s full month name.

%c Locale’s appropriate date and time representation.

%I Hour (12-hour clock) as a decimal number [01,12].

%p Locale’s equivalent of either AM or PM.


2.日期对象


datetime.date.today() #输出年月日

datetime.datetime.now() #输出年月日时分秒毫秒

可以通过datetime.date.today() 获取到时间对象使用相应的实例方法可以获取到年月日

可以通过datetime.datetime.now()获取到时间对象用相应的实例方法可以获取到年月日时分秒

属性是year(年),month(月)day(日),hour(时),minute(分),second(秒)

st=datetime.datetime.now()

st.year #获取年份


3.日期转字符串୧⍢⃝୨


函数strftime()参数为format对象,占位符使用的就是1中提到的那几个。

将日期按照指定格式进行格式化,并返回出来。


代码如下:


import datetime
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")


4.字符串转日期୧⍢⃝୨


通过的是strptime()参数是一个字符串,还有字符串的格式化(哪里是年哪里是月)

eg:

import datetime

str = datetime.strptime(“20200202”,"%Y%m%d")

这里str就是2020年02月02日的日期对象


切记时间对象可以直接比较大小(时间的前后)


总结


主要讲述了Python中日期与时间常用到的一些函数,以及日期格式化为字符串、字符串转换为日期对象。虽然篇幅短小但是非常精悍。对于时间日期对象重点掌握时间差怎么求,怎么处理字符串与日期之间的关系就足够了。其余功能在我们使用的时候再去官方文档上查找。




目录
相关文章
|
5天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 4
SciPy 教程之 SciPy 稀疏矩阵 4:介绍稀疏矩阵的概念、类型及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的工具,重点讲解了 CSC 和 CSR 两种格式,并通过示例演示了如何创建和操作 CSR 矩阵。
25 3
|
1天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
9 2
|
2天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
12 3
|
2天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
9 1
|
6天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 2
SciPy教程之SciPy稀疏矩阵2:介绍稀疏矩阵的概念、应用场景及scipy.sparse模块的使用。重点讲解CSC和CSR两种稀疏矩阵类型及其常用方法,如data属性和count_nonzero()方法。
30 4
|
3天前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
8 0
|
3天前
|
Python
SciPy 教程 之 SciPy 图结构 2
《SciPy 教程 之 SciPy 图结构 2》介绍了图结构作为算法学中的重要框架,通过 `scipy.sparse.csgraph` 模块处理图结构。文章示例展示了如何使用 `connected_components()` 方法查找所有连接组件,通过创建稀疏矩阵并调用该方法实现。
6 0
|
4天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 1
SciPy 图结构教程介绍了图的基本概念及其在算法中的应用。图由节点和边组成,节点代表对象,边表示对象间的连接。SciPy 的 `scipy.sparse.csgraph` 模块提供了处理图结构的工具。邻接矩阵用于表示节点间的连接关系,分为有向图和无向图两种类型。无向图的边是双向的,而有向图的边则有明确的方向。
14 0
|
4天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 5
SciPy 稀疏矩阵教程介绍了稀疏矩阵的概念及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的功能,主要使用 CSC(压缩稀疏列)和 CSR(压缩稀疏行)两种格式。通过示例展示了如何创建 CSR 矩阵、查看非零元素及转换为 CSC 格式。
16 0
|
7天前
|
数据采集 缓存 程序员
python协程使用教程
1. **协程**:介绍了协程的概念、与子程序的区别、优缺点,以及如何在 Python 中使用协程。 2. **同步与异步**:解释了同步与异步的概念,通过示例代码展示了同步和异步处理的区别和应用场景。 3. **asyncio 模块**:详细介绍了 asyncio 模块的概述、基本使用、多任务处理、Task 概念及用法、协程嵌套与返回值等。 4. **aiohttp 与 aiofiles**:讲解了 aiohttp 模块的安装与使用,包括客户端和服务器端的简单实例、URL 参数传递、响应内容读取、自定义请求等。同时介绍了 aiofiles 模块的安装与使用,包括文件读写和异步迭代
13 0