您当前的位置: 首页 >  Python

快乐很重要的汪

暂无认证

  • 3浏览

    0关注

    36博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python datetime库

快乐很重要的汪 发布时间:2022-09-01 23:25:24 ,浏览量:3

datetime库

本节目标:通过datetime库学习时间相关的数据类型。能进行时间运算

本节内容:datetime,time 本节技术点:时间的处理

本节阅读需要(5)min。 本节实操需要(10)min。

so easy

文章目录
  • datetime库
  • 一、datetime的数据结构
    • date
    • time
    • datetime
    • timedelta
  • 二、常用的属性和方法
  • 三、时间的格式化
  • 总结

一、datetime的数据结构

既然datetime是用来处理时间数据的,那么自然要存储时间数据的。 时间数据有不同的展现形式,比如,分,时,秒,天等。日期同样如此。 所以需要多样的数据结构。 time包比较基础,可以自行学习,另外功能datetime也能实现。所以略。

date类
time类
datetime类
timedelta类
date
from datetime import date

a = date(2019, 4, 13) # 自定义
print(a)
today = date.today() # 现在的日期
print("当前日期 =", today)
timestamp = date.fromtimestamp(1576244364) # 根据时间戳转化!
print("日期 =", timestamp)
Unix时间戳是特定日期到UTC的1970年1月1日之间的秒数。
time
from datetime import time

# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a) # 相当于秒表

# time(hour, minute and second)
c = time(hour = 11, minute = 34, second = 56)
print("c =", c)

# time(hour, minute, second, microsecond)
d = time(11, 34, 56, 234566)
print("d =", d)
datetime

datetime模块有一个名为的dateclass类,顺序结合了date和time对象的信息。

# datetime(year, month, day, hour, minute, second, microsecond)
b = datetime(2019, 11, 28, 23, 55, 59, 342380)
print(b)
timedelta

代表的是时间的插值。用于时间的数值计算。相当于重载了加法!!!

from datetime import datetime, date

t1 = date(year = 2018, month = 7, day = 12)
t2 = date(year = 2017, month = 12, day = 23)
t3 = t1 - t2
print("t3 =", t3)
print("type of t3 =", type(t3)) 
注意timedelta是有正负的。
二、常用的属性和方法

聊一聊实操中的常见的属性和方法。

from datetime import date,datetime
today = date.today()
print("当前日期 =", today)
# 打印程序运行时间
def testRunTime():
    start = datetime.now()
    for i in range(1000):
        for j in range(500):
            m = i + j
            print(m)
    end = datetime.now()
    print(end - start)
    return


打印时间的可以写成装饰器。
def timer(func):
    def call_func(*args, **kwargs):
        print("计时开始")
        start_time = datetime.now() # 或者换成time.time()
        func(*args, **kwargs)
        end_time = datetime.now()
        total_time = end_time - start_time
        print("计时结束")
        print(f"程序用时{total_time.total_seconds()}")#一般程序比较快,用秒计数比较好。
    return call_func


if __name__ == '__main__':
    @timer
    def test(second):  # 测试函数
        time.sleep(second)

    test(5)

a = datetime(2019, 12, 28, 23, 55, 59, 342380)
print("年 =", a.year)
print("月 =", a.month)
print("日 =", a.day)
print("时 =", a.hour)
print("份 =", a.minute)
print("时间戳 =", a.timestamp()) # 相当于转化为统一的时间戳标准
t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423)
print("total seconds =", t.total_seconds()) # 时间转化为秒
三、时间的格式化

必须掌握常见的转化。

from datetime import datetime

# current date and time
now = datetime.now()

t = now.strftime("%H:%M:%S")
print("time:", t)

s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("s1:", s1)

s2 = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("s2:", s2)

注意%m/%d/%Y, %H:%M:%S %m这些的含义是固定的,也就是说,相当于属性minute。 也就是格式字符串里面百分号内容不变,位置,连接符号自由定义。

具体的对照表百度。。。强调大小写格式,一般意义一致,但是格式不一致。

相当于上面过程的逆过程

from datetime import datetime

date_string = "21 June, 2018"
print("date_string =", date_string)

date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)

将一定形式的时间字符串读取到datetime数据类型中。 这样就可以数值处理了。

总结

本节主要讲了datetime的数据类型。

尤其掌握datetime。

掌握读入和输出的函数strptime,strftime。

装饰器要留心形式。

延伸阅读:

strftime对照表

关注
打赏
1663165558
查看更多评论
立即登录/注册

微信扫码登录

0.0375s