首页 > 编程语言 >Python 时间_Datetime_Module

Python 时间_Datetime_Module

时间:2023-10-09 16:44:20浏览次数:35  
标签:timedelta Python time Module datetime print 2023 date Datetime

Datetime_Module

作用:处理日期和时间

一、Datetime模块中的类

  • datetime:表示日期和时间,可以处理年、月、日、时、分、秒。
  • date:表示日期,主要用于处理年、月、日。
  • time:表示时间,主要用于处理时、分、秒。
  • timedelta:表示时间间隔,即两个时间点的间隔,主要用于做时间加减。
  • tzinfo:时区的相关信息。

二、Date类 <==> 日期

1.创建Date类对象

使用 Datetime.date() 函数创建日期对象,其中需要传递一个表示日期的元组,其中包含年、月、日。

import datetime  
  
date1 = datetime.date(2023, 7, 4)  
print(date1)  # 输出:2023-07-04

value = (2023 , 10 , 8)     #元组
date2 = datetime.date(value[0] , value[1] , value[2])
print(date2)    # 输出:2023-10-08

2.Date对象的属性

    • year:年份
    • month:月份
    • day:日期
    • weekday():星期几(其中0表示星期一,6表示星期日)
    • isocalendar():返回一个包含 年份、星期数 和 该年的第几天 的元组
import datetime  
  
date = datetime.date(2023, 7, 4)  
print(date.year)  # 输出:2023  
print(date.month)  # 输出:7  
print(date.day)  # 输出:4  
print(date.weekday())  # 输出:6,表示星期日  
print(date.isocalendar())  # 输出:(2023, 30, 3),表示2023年第30个星期,该年的第3天

3.日期的比较

使用关系运算符(<、>、= 等)比较两个日期的大小关系。比较的是日期本身,而不是时间。

import datetime  
  
date1 = datetime.date(2023, 7, 4)  
date2 = datetime.date(2023, 7, 5)  
  
if date1 < date2:  
    print("date1小于date2")  
else:  
    print("date1不小于date2")

>>>date1小于date2

4.日期的运算

#(1)加法:在现有日期的基础上增加一定的时间长度
from datetime import date, timedelta  
  
d = date(2023, 7, 4)  
d_future = d + timedelta(days=5)  # 在d的基础上向后推5天  
print(d_future)  # 输出:2023-07-09


#(2)减法:在现有日期的基础上减去一定的时间长度
from datetime import date, timedelta  
  
d = date(2023, 7, 4)  
d_past = d - timedelta(days=5)  # 在d的基础上向前推5天  
print(d_past)  # 输出:2023-06-28

#(3)相减:两个日期相减可以得到一个timedelta对象,表示两个日期之间的时间差
from datetime import date, timedelta  
  
d1 = date(2023, 7, 4)  
d2 = date(2023, 7, 9)  
  
delta = d2 - d1  # 得到两个日期之间的时间差  
print(delta)  # 输出:5 days, 0:00:00

5.日期与字符串

(1)使用strftime()方法将日期格式化为指定的字符串格式。这个方法接受一个格式字符串作为参数。即strftime()的返回值为字符串。

(2)使用strptime()方法将字符串解析为日期。这个方法接受两个参数:日期字符串和日期格式字符串。

#(1)strftime
print(d.strftime('%Y-%m-%d'))  # 输出: '2023-07-04'

#(2)strptime
from datetime import date  
# 从字符串解析日期  
d = date.strptime('2023-07-04', '%Y-%m-%d')  
print(d)  # 输出: date(2023, 7, 4)

三、Datetime类  <==>  日期时间

1.创建Datetime对象

  (1)使用基本构造方法 datetime() 方法构造;

  (2)使用 now() 获取当前日期和时间对象;

(3)使用 fromtimestamp() 给定一个时间戳;下方案例中的 timestamp 是自1970年1月1日00:00:00(UTC)以来的秒数,小数点后边的部分代表微秒。fromtimestamp()函数会返回一个datetime类型的对象,代表指定的日期和时间。

#(1)datetime.datetime()
from datetime import datetime as dt  
specific_datetime = dt(2023, 7, 4, 12, 30, 45)  
print(specific_datetime)


#(2)now()
from datetime import datetime as dt  
current_datetime = dt.now()  
print(current_datetime)

#(3)fromtimestamp() from datetime import datetime as dt, timezone timestamp = 1633649780.1234567 dt_object = dt.fromtimestamp(timestamp, timezone.utc) print(dt_object)

  2.datetime对象的属性

    • year:表示年份。
    • month:表示月份。
    • day:表示日期。
    • hour:表示小时数。
    • minute:表示分钟数。
    • second:表示秒数。
    • microsecond:表示微秒数。 

3.常见的方法

    • datetime.datetime():通过位置参数传参创建datetime对象,也可以通过关键字传参方式创建。
    • datetime.datetime.now():不需要参数,直接返回当前的日期和时间。
    • datetime.datetime.today():不需要参数,直接返回当前的日期。
    • datetime.datetime.utcnow():不需要参数,直接返回当前的世界标准时间日期和时间。

  4.datetime对象之间的运算

    (1)在两个datetime对象之间进行减法运算,得到一个timedelta对象,表示两个日期或时间之间的间隔。

from datetime import datetime as dt  
d1 = dt(2023, 7, 4, 12, 30)  
d2 = dt(2023, 7, 5, 12, 30)  
delta = d2 - d1  
print(delta)  # 输出:1 day, 0:00:00

    (2)datetime对象可以与timedelta对象相加或相减,得到一个新的datetime对象。

from datetime import datetime as dt  
d1 = dt(2023, 7, 4, 12, 30)  
d2 = dt(2023, 7, 5, 12, 30)  
delta = d2 - d1  
print(delta)  # 输出:1 day, 0:00:00

  5.datetime与字符串

    同date

四、Time类  <==>  时间

  1.创建Time对象

    datetime.time是Python的datetime模块中的一个类,它用于表示一天中的时间,包括小时、分钟、秒和微秒。

    创建datetime.time对象可以通过以下三种方式:

    (1)使用time()函数。

from datetime import time  
t = time()    #创建一个表示当前时间的time对象

    (2)使用datetime模块中的datetime类,只指定小时、分钟、秒和微秒参数来创建一个time对象。

from datetime import datetime  
t = datetime(2023, 7, 4, 15, 30, 45, 987654)
#创建一个表示2023年7月4日15:30:45.987654的datetime对象,然后可以调用它的time()方法来获取它的时间部分,即一个time对象。

    (3)使用datetime模块中的fromordinal()函数和toordinal()方法,给出一个时间点的ordinal值(自1970年1月1日以来的秒数)。

from datetime import time  
t = time.fromordinal(366300000)
#创建一个表示UTC时间2023年7月4日12:00:00的time对象。注意这种方法的参数是一个整数。

  2.datetime.time的属性

    • hour:表示小时数,范围为0-23。
    • minute:表示分钟数,范围为0-59。
    • second:表示秒数,范围为0-61(注:60和61用于闰秒)。
    • microsecond:表示微秒数。
    • hour、minute、second和microsecond都是只读的属性,不能被修改。

  3.datetime.time的常见方法

    • time.replace(hour=h, minute=m, second=s, microsecond=us) :返回一个新的 time 对象,它的 hour、minute、second 和 microsecond 与 self 相同,但 hour、minute、second 和 microsecond 参数可以指定。
    • time.timetuple() :返回一个包含时间信息的元组,元组中的元素是 hour、minute、second 和 microsecond。
    • time.timestamp() :返回一个表示该时间的浮点数,以 UTC 为准。在 Python 3.3 及以后的版本中可用。该浮点数是自1970年1月1日0时0分0秒(UTC)以来的秒数。
    • time.utctimetuple() :与 timetuple() 类似,但不考虑本地时区。始终返回 UTC 时间。
    • time.toordinal() :返回一个表示该时间的 ordinal 值,与 timestamp() 类似,但是以整数形式表示。在 Python 3.3及以后的版本中可用。注意这种方法的参数是一个整数。
    • time.strftime(format) :返回一个字符串,格式按照 format 参数规定的方式被修改过。例如:“%H:%M:%S”。
    • time.strptime(string, format) :将按照 format 参数指定的方式解析 string 参数并返回一个 time 对象。例如:time.strptime('15:30:45', '%H:%M:%S')。

  4.datetime.time的运算

    datetime.time对象可以和datetime模块中的其他类型进行运算,例如:

    datetime.timedelta:可以使用加法和减法运算将datetime.time对象与datetime.timedelta对象相加或相减,结果是一个新的datetime.datetime对象。

from datetime import timedelta, datetime  
t = datetime(2023, 7, 4, 15, 30, 45)  # datetime对象  
td = timedelta(hours=2)  # timedelta对象  
t_new = t + td  # datetime对象与timedelta对象的加法运算  
print(t_new)  # 输出:2023-07-04 17:30:45.000000

 五、Timedelta类  <==>  时间间隔

1.创建timedelta对象

(1)使用timedelta()函数。

#创建一个表示1天的timedelta对象。
from datetime import timedelta as td  
delta = td(days=1)

(2)使用timedelta对象的属性。

#创建一个表示1天的timedelta对象。
from datetime import timedelta as td  
delta = td()  
delta.days = 1

(3)使用timedelta()函数的参数。

#创建一个表示1天3小时的timedelta对象。
from datetime import timedelta as td  
delta = td(days=1, hours=3)

2.timedelta的属性

    • days: 整数部分的天数。例如,delta.days可以获取或设置一个整数表示的天数。
    • seconds: 整数部分的秒数(不包括天数部分)。例如,delta.seconds可以获取或设置一个整数表示的秒数。注意这个不包括天数部分的小时、分钟和秒数。
    • microseconds: 微秒数(不包括天数和秒数部分)。例如,delta.microseconds可以获取或设置一个整数表示的微秒数。注意这个不包括天数、秒数部分的小时、分钟和秒数。
    • total_seconds() 方法: 返回该时间差的总秒数。例如,delta.total_seconds()会返回86401秒(假设 delta 为一天)。
    • total_days() 方法: 返回该时间差的总天数(可能有小数)。例如,delta.total_days()会返回1.0(假设 delta 为一天)。

3.timedelta的方法

    • timedelta.total_seconds(): 返回该时间差的总秒数。这个方法和total_seconds属性是相同的。
    • timedelta.total_days(): 返回该时间差的总天数(可能有小数)。这个方法和total_days属性是相同的。
    • timedelta.__str__(): 返回描述该时间差的字符串。例如,str(delta)可能返回'1 day, 0:00:00'。
    • timedelta.__repr__(): 返回表示该时间差的字符串。例如,repr(delta)可能返回"datetime.timedelta(1)"。

    

 

标签:timedelta,Python,time,Module,datetime,print,2023,date,Datetime
From: https://www.cnblogs.com/SouthDreamYao/p/17751805.html

相关文章

  • python如何配置文件路径
    1、获取被调用函数所在的模块文件名,然后获取其路径。2、与配置文件所在的路径进行比较,基于模块文件路径和父级路径的配置文件所在的相对路径,获得配置文件的绝对路径。co_filepath=sys._getframe().f_code.co_filenamehead,tail=os.path.split(co_filepath)conf_filepa......
  • Python生成随机整数数组的实用方法
    在编程中,生成随机整数数组是一项非常常见的任务。本文将介绍如何使用Python语言来生成随机整数数组,帮助读者掌握这一有用的编程技巧。通过实际的代码示例,我们将逐步指导读者完成生成随机整数数组的过程,并提供一些实际应用的建议。第一部分:了解随机数生成原理1.什么是随机数:-随机数......
  • Python_滑动窗口
    SQL中窗口函数常用窗口函数窗口函数主要分为了聚合、排序、分布、平移及首尾等类型1)聚合函数:sum()、count()、max()、min()、avg()2)排序函数:row_number()、rank()、dense_rank()3)分布函数:percent_rank()、cume_dist()4)平移函数:lead()、lag()5)首尾函数......
  • 7、Python语法入门之流程控制
    7、Python语法入门之流程控制转载: 7、Python语法入门之流程控制-知乎(zhihu.com)目录:引子分支结构什么是分支结构为什么要用分支结构如何使用分支结构if语法if应用案例循环结构什么是循环结构为什么要用循环结构如何使用循环结构while循环语......
  • 几个易错的python小知识点
    大家好,我是暴走の海鸽~本期整理了几个基础python防坑小常识,希望对大家有所帮助。1.type==object?执行以下代码的结果是什么:>>>isinstance(type,object)True>>>isinstance(object,type)True>>>isinstance(object,object)True>>>isinstance(type,type)True......
  • 笨办法学Python3 习题30 else 和 if
    1people=302cars=403trucks=1545ifcars>people:#下面同时为True,也只会运行第一个为True的块,另外两个优先级依次低于if6print("Weshouldtakethecars.")#第一个分支的块78elifcars<people:......
  • 笨办法学Python3 习题29 if 语句
    1people=202cats=303dogs=1545ifpeople<cats:6print("Toomanycats!Theworldisdoomed!")78ifpeople>cats:9print("Notmanycats!Theworldissaved!")1011ifpeople<dogs:12p......
  • Command "python setup.py egg_info" failed with error code 1
     D:\ProgramFiles\python_3_6_4>python-mpipinstall--upgradepipCacheentrydeserializationfailed,entryignoredCollectingpip Cacheentrydeserializationfailed,entryignored Downloadinghttps://files.pythonhosted.org/packages/a4/6d/6463d49a93......
  • 实验安装的python包
    pyaudio-- python3.6,pycharm可以安装pipinstallpyaudiopyqt5-- python3.6(slow)D:\ProgramFiles\python_3_6_4\Scripts>pipinstallpyqt5-ihttps://pypi.mirrors.ustc.edu.cn/simple/Collectingpyqt5 CouldnotfetchURLhttps://pypi.mirrors.ustc.edu.cn......
  • python 递归遍历目录筛选特定文件名的文件
    #!/usr/bin/pythonimportosimportsyslist=[]folder_path="/root"defsearch_files(folder_path):search_string="测试"forroot,dirs,filesinos.walk(folder_path):fornameinfiles:ifsearch_strin......