热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python 时间操作datetime详情(下)_python

我们在上一文datetime模块对datetime模块中包含了六个类对象如date、time、datetime等对时间和日期进行操作。这一篇文章我们继续上一篇文章的内容学习date

复习回顾:datetime模块

1. datetime.date 类

datetime.date 类定义的 date 对象代表日期(年月日如2021.10.30)

1.1datetime.date 类格式


class datetime.date(year,month,day)

参数:不可缺省。如果参数不存在,则会抛出ValueError异常


  • year参数取值范围:[MINYEAR, MAXYEAR]

  • month参数取值范围:[1,12]

  • day参数取值范围:[1,给定年月对应的天数]

1.2datetime.date类方法和属性





























类方法/属性作用
date.maxdate对象表示的最大日期,9999-12-31
date.mindate对象表示的最小日期,0001-01-01
date.resolutiondate对象表示日期的最大单位,天
date.today()获取当前本地日期
date.fromtimestamp(timestamp)将时间戳转换成日期

date对象方法和属性




















































对象方法/属性作用
d.year表示年
d.month表示月
d.day表示日
d.replace(year,[,month,[,day]])生成一个新的日期
d.timetuple()返回日期对应的结构化对象
d.toordinal()返回日期距离起始0001-01-01的第N天
d.weekday()返回日期是星期几,[0,6] 0代表是星期一
d.isoweekday返回日期是星期几,[1,7] 1代表是星期一
d.isocalendar()(year, weekday, isoweekday)形式的元组
d.isoformat()‘YYYY-MM-DD'格式的日期字符串
d.strftime(format)返回指定格式的日期字符串

import datetime
dat = datetime.date(2021,10,30)
print("datetime.date.today()类方法",datetime.date.today())
print("date对象year属性:",dat.year)
print("date对象month属性:",dat.month)
print("date对象day属性:",dat.day)
print("date对象replace:",dat.replace(2022))
print("date对象timetuple:",dat.timetuple())
print("date对象weekday:",dat.weekday())
print("date对象isoweekday:",dat.isoweekday())
print("date对象isocalendar:",dat.isocalendar())
print("date对象isoformat:",dat.isoformat())
print("date对象strftime:",dat.strftime("%d-%m-%Y"))

2. datetime.time 类

datetime.time 类的对象表示某地某日的时间,独立于任何特定日期,并且可以通过tzinfo对象来调整。

2.1datetime.time 类格式


class datetime.time(hour=0,minute=0,
secOnd=0,mircrosecOnd=0,tzinfo=Noe,*,fold=0 )

参数:所有的参数都是可选的


  1. hour参数取值范围:[0,23]

  2. minute参数取值范围:[0,59]

  3. second参数取值范围:[0,59]

  4. microsecond取值范围:[0,1000000]

  5. tzinfo:可以是None,或者一个tzinfo子类实例

2.2datetime.time类方法和属性





















类方法/属性作用
time.maxtime类表示最大时间,time(23, 59, 59, 999999)
time.mintime类表示最小时间,time(0, 0, 0, 0)
time.resolution时间的最小单位,1微秒

2.3datetime.time类方法和属性









































实例方法/属性作用
t.hour表示时
t.minute表示分
t.second表示秒
t.microsecond表示微秒
t.tzinfo返回传递time构造方法的tzinfo对象
t.replace(hour,[,mintue,[,]])生成一个新的时间
t.isoformat()返回一个‘HH:MM:SS.%f'格式的时间字符串
t.strftime()返回指定格式的时间字符串

3. datetime.datetime 类

datetime.datetime 类是datetime.date的子类,包含时间和日期所有信息的对象

3.1datetime.datetime 类定义格式


class datetime.datetime(year,month,day,hour=0,minute=0,
secOnd=0,mircrosecOnd=0,tzinfo=Noe,*,fold=0 )

参数:year,month和day 参数是必填项


  • year参数取值范围:[MINYEAR, MAXYEAR]

  • month参数取值范围:[1,12]

  • day参数取值范围:[1,给定年月对应的天数]

  • hour参数取值范围:[0,23]

  • minute参数取值范围:[0,59]

  • second参数取值范围:[0,59]

  • microsecond取值范围:[0,1000000]

  • tzinfo:可以是None,或者一个tzinfo子类实例

  • fold in [0,1]

3.2datetime.datetime 类方法和属性





































类方法/属性作用
datetime.today()f返回当前本期日期时间的datetime对象
datetime.now([tz])返回指定时区日期时间的datetime对象,若不指定tz参数则系统时间
datetime.utcnow()返回当前utc日期时间的datetime对象
datetime.fromtimestamp(timestamp[, tz])根据指定的时间戳创建一个datetime对象
datetime.utcfromtimestamp(timestamp)根据指定的时间戳创建一个datetime对象
datetime.combine(date, time)把指定的date和time对象整合成一个datetime对象
datetime.strptime(date_str, format)将时间字符串转换为datetime对象

datetime.datetime 类实例方法和属性




























































































实例方法/属性作用
dt.year表示年
dt.month表示月
dt.day表示日
dt.hour表示时
dt.minute表示分
dt.second表示秒
dt.microsecond表示微秒
dt.tzinfo表示时区
dt.date()获取datetime对象对应的date对象
dt.time()获取datetime对象对应的time对象, tzinfo 为None
dt.timetz()获取datetime对象对应的time对象,tzinfo与datetime对象的tzinfo相同
dt.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])生成一个新datetime对象
dt.timetuple()返回datetime对象对应的tuple(不包括tzinfo)
dt.utctimetuple()返回datetime对象对应的utc时间的tuple(不包括tzinfo)
dt.timestamp()返回datetime对象对应的时间戳
dt.toordinal()返回日期是是自 0001-01-01 开始的第多少天
dt.weekday()返回日期是星期几,[0, 6],0表示星期一
dt.isocalendar()返回一个元组,格式为:(year, weekday, isoweekday)
dt.isoformat([sep])返回一个‘%Y-%m-%d%H:%M:%S.%f'格式的字符串
dt.ctime()等价于time模块的time.ctime(time.mktime(d.timetuple()))
dt.strftime(format)返回指定格式的时间字符串

4. datetime.timedelta 类

datetime.timedelta 类定义的对象表示两个date或者time的时间间隔

4.1datetime.timedelta 类定义格式


class datetime.timedelta(days=0,secOnds=0,microsecOnds=0,
millisecOnds=0,hours=0,weeks=0 )

参数:所有参数都是可选并且默认为0


  • 参数类型:整数或者浮点数,正数或者负数

  • 只有days、seconds、microseconds会存储在内部

换算公式:


  • 1secOnds= 1000microsends

  • 1minutes = 60seconds

  • 1hours = 3600seconds

  • 1weeks = 7days

seconds 取值范围:[0,86399]

microseconds 取值范围:[0,999999]

days 取值范围:[-999999999,999999999]

4.2datetime.timedelta 类方法和属性





















类方法/属性作用
timedelta.mintimedelta(-999999999)
timedelta.maxtimedelta(days=999999999, hours=23, minutes=59, secOnds=59, microsecOnds=999999)
timedelta.resolutiontimedelta(microsecOnds=1)

datetime.timedelta 类实例方法和属性
























实例方法/属性作用
td.days天,[-999999999, 999999999]
td.seconds秒[0, 86399]
td.microseconds微秒 [0, 999999]
td.total_seconds()时间差中包含的总秒数,等价于: td / timedelta(secOnds=1)

5. datetime.tzinfo 类与datetime.timezone 类

datetime.tzinfo 类是一个抽象基类,该类不会被直接实例化。



  • tzinfo的子类用例捕获有关特定时区的信息


  • tzinfo的实例可以传给datetime和time对象的构造器中

datetime.timezone 类是tzinfo的子类,它的每一个实例代表一个以与UTC的固定时间差来定义的时区。

5.1datetime.timezone 类定义格式


class datetime.timezone(offset,name=None)

参数:


  • offset 必现要指定一个timedelta对象,表示本地时间与UTC时间差范围在[-24,24]

  • name:是可选的,若指定必须为一个字符串,它将被用作于datetime.tzname()方法返回值

5.2datetime.timezone 类方法和属性





























类方法/属性作用
timezone.utcoffset(dt)返回当 timezone 实例被构造时指定的固定值。
timezone.tzname(dt)返回timezone实例被构造时指定的固定值
timezone.dst(dt)总是返回none
timezone.formutc(dt)返回dt+uoffset
timezone.utc返回UTC时区

6、总结

主要对datetime模块中六大类相关的属性和方法进行学习汇总

复习回顾:datetime模块

1. datetime.date 类

datetime.date 类定义的 date 对象代表日期(年月日如2021.10.30)

1.1datetime.date 类格式


class datetime.date(year,month,day)

参数:不可缺省。如果参数不存在,则会抛出ValueError异常


  • year参数取值范围:[MINYEAR, MAXYEAR]

  • month参数取值范围:[1,12]

  • day参数取值范围:[1,给定年月对应的天数]

1.2datetime.date类方法和属性





























类方法/属性作用
date.maxdate对象表示的最大日期,9999-12-31
date.mindate对象表示的最小日期,0001-01-01
date.resolutiondate对象表示日期的最大单位,天
date.today()获取当前本地日期
date.fromtimestamp(timestamp)将时间戳转换成日期

date对象方法和属性




















































对象方法/属性作用
d.year表示年
d.month表示月
d.day表示日
d.replace(year,[,month,[,day]])生成一个新的日期
d.timetuple()返回日期对应的结构化对象
d.toordinal()返回日期距离起始0001-01-01的第N天
d.weekday()返回日期是星期几,[0,6] 0代表是星期一
d.isoweekday返回日期是星期几,[1,7] 1代表是星期一
d.isocalendar()(year, weekday, isoweekday)形式的元组
d.isoformat()‘YYYY-MM-DD'格式的日期字符串
d.strftime(format)返回指定格式的日期字符串

import datetime
dat = datetime.date(2021,10,30)
print("datetime.date.today()类方法",datetime.date.today())
print("date对象year属性:",dat.year)
print("date对象month属性:",dat.month)
print("date对象day属性:",dat.day)
print("date对象replace:",dat.replace(2022))
print("date对象timetuple:",dat.timetuple())
print("date对象weekday:",dat.weekday())
print("date对象isoweekday:",dat.isoweekday())
print("date对象isocalendar:",dat.isocalendar())
print("date对象isoformat:",dat.isoformat())
print("date对象strftime:",dat.strftime("%d-%m-%Y"))

2. datetime.time 类

datetime.time 类的对象表示某地某日的时间,独立于任何特定日期,并且可以通过tzinfo对象来调整。

2.1datetime.time 类格式


class datetime.time(hour=0,minute=0,
secOnd=0,mircrosecOnd=0,tzinfo=Noe,*,fold=0 )

参数:所有的参数都是可选的


  1. hour参数取值范围:[0,23]

  2. minute参数取值范围:[0,59]

  3. second参数取值范围:[0,59]

  4. microsecond取值范围:[0,1000000]

  5. tzinfo:可以是None,或者一个tzinfo子类实例

2.2datetime.time类方法和属性





















类方法/属性作用
time.maxtime类表示最大时间,time(23, 59, 59, 999999)
time.mintime类表示最小时间,time(0, 0, 0, 0)
time.resolution时间的最小单位,1微秒

2.3datetime.time类方法和属性









































实例方法/属性作用
t.hour表示时
t.minute表示分
t.second表示秒
t.microsecond表示微秒
t.tzinfo返回传递time构造方法的tzinfo对象
t.replace(hour,[,mintue,[,]])生成一个新的时间
t.isoformat()返回一个‘HH:MM:SS.%f'格式的时间字符串
t.strftime()返回指定格式的时间字符串

3. datetime.datetime 类

datetime.datetime 类是datetime.date的子类,包含时间和日期所有信息的对象

3.1datetime.datetime 类定义格式


class datetime.datetime(year,month,day,hour=0,minute=0,
secOnd=0,mircrosecOnd=0,tzinfo=Noe,*,fold=0 )

参数:year,month和day 参数是必填项


  • year参数取值范围:[MINYEAR, MAXYEAR]

  • month参数取值范围:[1,12]

  • day参数取值范围:[1,给定年月对应的天数]

  • hour参数取值范围:[0,23]

  • minute参数取值范围:[0,59]

  • second参数取值范围:[0,59]

  • microsecond取值范围:[0,1000000]

  • tzinfo:可以是None,或者一个tzinfo子类实例

  • fold in [0,1]

3.2datetime.datetime 类方法和属性





































类方法/属性作用
datetime.today()f返回当前本期日期时间的datetime对象
datetime.now([tz])返回指定时区日期时间的datetime对象,若不指定tz参数则系统时间
datetime.utcnow()返回当前utc日期时间的datetime对象
datetime.fromtimestamp(timestamp[, tz])根据指定的时间戳创建一个datetime对象
datetime.utcfromtimestamp(timestamp)根据指定的时间戳创建一个datetime对象
datetime.combine(date, time)把指定的date和time对象整合成一个datetime对象
datetime.strptime(date_str, format)将时间字符串转换为datetime对象

datetime.datetime 类实例方法和属性




























































































实例方法/属性作用
dt.year表示年
dt.month表示月
dt.day表示日
dt.hour表示时
dt.minute表示分
dt.second表示秒
dt.microsecond表示微秒
dt.tzinfo表示时区
dt.date()获取datetime对象对应的date对象
dt.time()获取datetime对象对应的time对象, tzinfo 为None
dt.timetz()获取datetime对象对应的time对象,tzinfo与datetime对象的tzinfo相同
dt.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])生成一个新datetime对象
dt.timetuple()返回datetime对象对应的tuple(不包括tzinfo)
dt.utctimetuple()返回datetime对象对应的utc时间的tuple(不包括tzinfo)
dt.timestamp()返回datetime对象对应的时间戳
dt.toordinal()返回日期是是自 0001-01-01 开始的第多少天
dt.weekday()返回日期是星期几,[0, 6],0表示星期一
dt.isocalendar()返回一个元组,格式为:(year, weekday, isoweekday)
dt.isoformat([sep])返回一个‘%Y-%m-%d%H:%M:%S.%f'格式的字符串
dt.ctime()等价于time模块的time.ctime(time.mktime(d.timetuple()))
dt.strftime(format)返回指定格式的时间字符串

4. datetime.timedelta 类

datetime.timedelta 类定义的对象表示两个date或者time的时间间隔

4.1datetime.timedelta 类定义格式


class datetime.timedelta(days=0,secOnds=0,microsecOnds=0,
millisecOnds=0,hours=0,weeks=0 )

参数:所有参数都是可选并且默认为0


  • 参数类型:整数或者浮点数,正数或者负数

  • 只有days、seconds、microseconds会存储在内部

换算公式:


  • 1secOnds= 1000microsends

  • 1minutes = 60seconds

  • 1hours = 3600seconds

  • 1weeks = 7days

seconds 取值范围:[0,86399]

microseconds 取值范围:[0,999999]

days 取值范围:[-999999999,999999999]

4.2datetime.timedelta 类方法和属性





















类方法/属性作用
timedelta.mintimedelta(-999999999)
timedelta.maxtimedelta(days=999999999, hours=23, minutes=59, secOnds=59, microsecOnds=999999)
timedelta.resolutiontimedelta(microsecOnds=1)

datetime.timedelta 类实例方法和属性
























实例方法/属性作用
td.days天,[-999999999, 999999999]
td.seconds秒[0, 86399]
td.microseconds微秒 [0, 999999]
td.total_seconds()时间差中包含的总秒数,等价于: td / timedelta(secOnds=1)

5. datetime.tzinfo 类与datetime.timezone 类

datetime.tzinfo 类是一个抽象基类,该类不会被直接实例化。



  • tzinfo的子类用例捕获有关特定时区的信息


  • tzinfo的实例可以传给datetime和time对象的构造器中

datetime.timezone 类是tzinfo的子类,它的每一个实例代表一个以与UTC的固定时间差来定义的时区。

5.1datetime.timezone 类定义格式


class datetime.timezone(offset,name=None)

参数:


  • offset 必现要指定一个timedelta对象,表示本地时间与UTC时间差范围在[-24,24]

  • name:是可选的,若指定必须为一个字符串,它将被用作于datetime.tzname()方法返回值

5.2datetime.timezone 类方法和属性





























类方法/属性作用
timezone.utcoffset(dt)返回当 timezone 实例被构造时指定的固定值。
timezone.tzname(dt)返回timezone实例被构造时指定的固定值
timezone.dst(dt)总是返回none
timezone.formutc(dt)返回dt+uoffset
timezone.utc返回UTC时区

6、总结

主要对datetime模块中六大类相关的属性和方法进行学习汇总


推荐阅读
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有