首页 > 编程语言 >PYTHON - datetime 模块

PYTHON - datetime 模块

时间:2023-04-20 14:24:49浏览次数:39  
标签:PYTHON datetime date tm 模块 time print today

datetime模块

1.1 主要类

  • date 日期对象
  • time 时间对象
  • datetime 日期时间对象
  • timedelta 两个时间之间的时间间隔

1.2 date类

date对象由year年份、month月份及day日期三个部分来构成的

1.2.1 获取当前日期

from datetime import datetime, date

today = datetime.today().date()
print(type(today), today)  # <class 'datetime.date'> 2023-04-20

today = date.today()
print(type(today), today)  # <class 'datetime.date'> 2023-04-20

这两种方式都可以。

1.2.2 年月日

date日期对象,里面有年月日字段:

from datetime import datetime, date

today = date.today()
print("yead:", today.year)
print("month:", today.month)
print("day:", today.day)

year, month, day属性是表示年月日。

1.2.3 输出

可以输出多种信息:比如年月日,星期等。

from datetime import datetime, date

today = date.today()
print("当前日期:", today)
# 当前日期: 2023-04-20

print("当前日期(string):", today.ctime())
# 当前日期(string): Thu Apr 20 00:00:00 2023"星期:"

print("当前日期(tuple):", today.timetuple())
# 当前日期(tuple): time.struct_time(tm_year=2023, tm_mon=4, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=110, tm_isdst=-1)

print("星期:", today.weekday())
# 星期: 3
# 注意: 0代表星期一,1代表星期二 ...

print("星期:", today.isoweekday())
# 星期: 4
# 注意: 1代表星期一,2代表星期二 ...


print("公历序数:", today.toordinal())
# 公历序数: 738630

print("年,全年周,星期", today.isocalendar())
# 年,全年周,星期 datetime.IsoCalendarDate(year=2023, week=16, weekday=4)

可以自定义输出格式:

from datetime import date

today = date.today()
print(today.strftime("%Y-%m-%d"))

%Y 年, %m月, %d日

1.2.4 创建日期

  • 通过年月日创建:
from datetime import date

today = date(2022, 8, 18)
print(today.strftime("%Y-%m-%d 星期"), today.isoweekday())

参数: date(年,月,日)

  • 通过公历序数创建
import datetime
from datetime import date

today = date.fromordinal(888888)
print(today.strftime("%Y-%m-%d 星期"), today.isoweekday())  # 2434-09-10 星期 7
print(datetime.MAXYEAR)  # 9999

注意:数不能太大,因为最大年份只能表示到9999

  • 通过时间戳创建
from datetime import date
import time

t = time.time()
today = date.fromtimestamp(t)
print(today.strftime("%Y-%m-%d 星期"), today.isoweekday())  # 2023-04-20 星期 4

1.3 time类

表示时间对象,由时,分,秒,微秒组成

from datetime import time, datetime

t = datetime.now().time()
print(type(t), t)  # <class 'datetime.time'> 13:30:29.811985

1.3.1 属性

from datetime import time, datetime

t = datetime.now().time()
print(f"时:{t.hour}, 分:{t.minute}, 秒:{t.second}, 微秒:{t.microsecond}")

hour时, minute分,second 秒, , microsecond 微秒

1.3.1 输出

from datetime import time

# 创建一个时间:年,分,秒,微秒
t = time(13, 34, 5, 1234)
print(t.isoformat())
print(t.strftime("%H:%M:%S:%f"))

输出:13:34:05.001234

其中:时(%H),分(%M),秒(%S),微秒(%f)

1.4 datetime类

datetime对象包含了date和time对象的所有信息。

1.4.1 当前日期和时间

from datetime import datetime

today = datetime.today()
print(today)  
# 2023-04-20 13:42:23.892367

print(today.date())  
# 2023-04-20

print(today.time())  
# 13:42:23.892367

print(today.utctimetuple()) 
# time.struct_time(tm_year=2023, tm_mon=4, tm_mday=20, tm_hour=13, tm_min=43, tm_sec=35, tm_wday=3, tm_yday=110, tm_isdst=0)

其中:date()返回日期部分,time()返回时间部分,utctimetuple返回utc时间元组部分

1.4.2 属性

和date和time一样。

from datetime import datetime

today = datetime.today()
print(f"{today.year}-{today.month}-{today.day} {today.hour}:{today.minute}:{today.second}")

1.4.3 其它方法

from datetime import datetime

# 创建一个datetime对象,参数:年月日,时分秒
today = datetime(2023, 4, 20, 13, 52, 5)
print(today.date())  # 日期
print(today.time())  # 时间
print(today.timetuple())  # 时间元组
print(today.toordinal())  # 序数
print(today.weekday())  # 星期
print(today.isoweekday())  # 星期
print(today.isocalendar())  # iso格式化输出
print(today.isoformat())  # iso格式化输出
print(today.strftime("%Y-%m-%d %H:%M:%S"))  # 指定输出格式
print(today.replace(year=2024, month=3))  # 替换

replace是替换日期,对于date,time类都支持。

1.5 timedelta类

timedelta对象表示一个时间段,即两个日期 (date) 或日期时间 (datetime) 之间的差值。

目前支持参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds。

from datetime import datetime, timedelta

today = datetime.now()
print("今天:", today)
print("加上10天:", today + timedelta(days=10))
print("减去20天,5小时:", today - timedelta(days=20, hours=5))

1.5.1 日期差值

from datetime import datetime, timedelta

today1 = datetime(2023, 4, 20, 0, 0, 0)
today2 = datetime(2023, 4, 21, 5, 3, 0)

t = today2 - today1
print(type(t), t)  # <class 'datetime.timedelta'> 1 day, 5:03:00

标签:PYTHON,datetime,date,tm,模块,time,print,today
From: https://www.cnblogs.com/three-sheep/p/17336635.html

相关文章

  • LeetCode Top100:回文链表 (python)
    LeetCodeTop100:回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false提示:链表中节点数目在范围[1,105] 内0<=Node.val<=9 ......
  • Python常用数据结构之元组
    前面的两节课,我们为大家讲解了Python中的列表,它是一种容器型的数据类型,通过列表类型的变量,我们可以保存多个数据并通过循环实现对数据的批量操作。当然,Python中还有其他容器型的数据类型,接下来我们就为大家讲解另一种容器型的数据类型,Python常用数据结构之元组(tuple)。元组的定义......
  • python dataclasses定义默认值为可变类型(转)
    原文:https://zhuanlan.zhihu.com/p/59658886作者:没有50CM手臂网站:知乎 场景还原最近开发遇到一个问题是在python3.7的dataclass中不能使用可变的默认值,错误如下:@dataclassclassFoo:bar:list=[]#ValueError:mutabledefault<class'list'>forfieldaisn......
  • python a股量化解决方案
    baostockhttp://baostock.com/baostock/index.php/A股K线数据pytdxhttps://rainx.gitbooks.io/pytdx/content/pytdx_reader.html......
  • LeetCode Top100: 相交链表(Python)
    LeetCodeTop100:相交链表给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原......
  • 【备忘录设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介备忘录模式(MementoPattern)是一种结构型设计模式。这种模式就是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并放在外部存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。备忘录模式的角色有三个......
  • LeetCode Top100: 环形链表(python)
     给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。仅仅是为......
  • Python 图像处理实用指南:11~12
    原文:Hands-OnImageProcessingwithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN计算机视觉译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。当别人说你没有底线的时候,你最好真的没有;当别人说你做过某些事的时候,你也最好真的做过。十一、深入学习图像处理——......
  • 理解 Python 的 Dataclasses第二篇(转)
    原文:https://zhuanlan.zhihu.com/p/59658598作者:没有50CM手臂网站:知乎这是Python最新的Dataclasses系列的第二部分内容。在第一部分里,我介绍了dataclasses的一般用法。这篇博客主要介绍另一个特征:dataclasses.field。我们已经知道Dataclasses会生成他们自身的__init__方法。......
  • 理解 Python 的 Dataclasses第一篇(转)
    原文:https://zhuanlan.zhihu.com/p/59657729作者:没有50CM手臂网站:知乎引言Dataclasses是一些适合于存储数据对象(dataobject)的Python类。你可能会问,什么是数据对象?下面是一个并不详尽的用于定义数据对象的特征列表:他们存储并表示特定的数据类型。例如:一个数字。对于那些熟悉......