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




相关文章
|
2月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
131 64
|
30天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
62 8
|
30天前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
97 7
|
26天前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
30 2
|
30天前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
48 4
|
30天前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
48 5
|
1月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
50 3
|
2月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
45 6
|
2月前
|
数据挖掘 Python
用Python轻松获取任意月份的公休日期
本文介绍了如何使用Python的`calendar`和`datetime`模块轻松获取任意月份的公休日期,包括周六和周日。通过示例代码,用户可以输入年份和月份,程序将输出该月份的所有公休日。这对于安排会议、规划旅行或数据分析都非常有用。
30 3
|
2月前
|
Python
SciPy 教程 之 Scipy 显著性检验 9
SciPy 教程之 Scipy 显著性检验第9部分,介绍了显著性检验的基本概念、作用及原理,通过样本信息判断假设是否成立。着重讲解了使用scipy.stats模块进行显著性检验的方法,包括正态性检验中的偏度和峰度计算,以及如何利用normaltest()函数评估数据是否符合正态分布。示例代码展示了如何计算一组随机数的偏度和峰度。
34 1