Maison  >  Article  >  développement back-end  >  Résumé de l'utilisation et des méthodes courantes du module datetime en Python

Résumé de l'utilisation et des méthodes courantes du module datetime en Python

不言
不言original
2018-09-19 14:56:2320567parcourir

Cet article vous apporte un résumé de l'utilisation et des méthodes courantes du module datetime en Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Le module datetime réencapsule le module time pour fournir plus d'interfaces. Les classes fournies sont :

date, une classe représentant la date

time, une classe représentant l'heure<.>

datetime, une classe représentant la date et l'heure

timedelta, représentant un intervalle de temps, c'est-à-dire l'intervalle entre deux points dans le temps

tzinfo, informations liées aux fuseaux horaires

(Les objets de ces classes sont tous immuables)

(Les classes ont des méthodes de classe, les méthodes de classe ont des méthodes et les méthodes héritent des méthodes de classe)

1. Classe de date

datetime.date (année, mois, jour)

Méthodes et attributs de classe couramment utilisés :

date.max La date maximale que l'objet peut représenter (9999-12-31)
date.max 对象所能表示的最大日期(9999-12-31)
date.min 对象所能表示的最小日期(0001-01-01) 
date.today() 返回一个表示当前本地时间的date对象                                                                            
date.resolution date对象表示日期的最小单位(天)
date.fromtimestamp(timestamp) 根据给定的时间戳,返回一个date对象
date.min La date minimale que l'objet peut représenter (0001-01-01)
date.today() Renvoie un objet date représentant l'heure locale actuelle                                    -family: "Microsoft YaHei"; font-size: 15px">date.resolution L'objet date représente la plus petite unité de date (jours)
date.fromtimestamp(timestamp) td> Renvoie un objet date basé sur l'horodatage donné

实现:

类方法

import datetime
import time
print(datetime.date.max)
print(datetime.date.min)
print(datetime.date.today())
print(datetime.date.resolution)
print(datetime.date.fromtimestamp(time.time()+3600000))      # 给定时间戳的 日期

résultat

9999-12-31
0001-01-01
2018-09-17
1 day, 0:00:00
2018-10-29

其中常用的方法与属性:

d.year
d.year
d.month
d.day
d.replace(year[,month[,day]]) 生成并返回一个新的日期对象,原日期对象不变                                                       
d.timetuple() 返回日期对应的时间元组(time.struct_time)对象
d.toordinal()
返回日期是自0001-01-01开始的第多少天
d.weekday() 返回日期是星期几,[0,6],0表示星期一,1表示星期二
d.isoweekday() 返回日期是星期几,[1,7],1表示星期一,2表示星期二
d.isocalendar() 返回格式为(year,weekday,isoweekday)的元组
d.isoformat() 返回‘YYYY-MM-DD’格式的日期字符串
d.strftime() 自定义格式化字符串(和time模块的strftime()方法相同)
d.month
d.replace(année[,mois[,jour]]) 生成并返回一个新的日期对象,原日期对象不变                                                     
d.timetuple() 返回日期对应的时间元组(time.struct_time)对象
d.toordinal()
返回日期是自0001-01-01开始的第多少天
d.weekday() 返回日期是星期几,[0,6],0表示星期一,1表示星期二
d.isoweekday() 返回日期是星期几,[1,7],1表示星期一,2表示星期二
d.isocalendar() 返回格式为(année,jour de la semaine,isojour de la semaine)的元组
d.isoformat() 返回'AAAA-MM-JJ'格式的日期字符串
d.strftime() 自定义格式化字符串(和time模块的strftime()方法相同)

实现:

方法

print(datetime.date.year)              # <attribute &#39;year&#39; of &#39;datetime.date&#39; objects>
print(datetime.date.today().year)     # 本地时时间的年
print(datetime.date.fromtimestamp(time.time()+3600000).month)   # 给定时间戳的 月
print(datetime.date.today().day)  # 日

print(datetime.date.today().replace(year=2019))
print(datetime.date.today().timetuple())
print(datetime.date.today().toordinal())
print(datetime.date.today().weekday())
print(datetime.date.today().isoweekday())
print(datetime.date.today().isocalendar())
print(datetime.date.today().isoformat())
print(datetime.date.today().strftime(&#39;%Y-%m-%d-%a-%I&#39;))

result

<attribute &#39;year&#39; of &#39;datetime.date&#39; objects>
10
2019-09-17
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=260, tm_isdst=-1)
0
(2018, 38, 1)
2018-09-17
2018-09-17-Mon-12

result

2、time类

其中,time类和time模块各自独立

datetime.time(hour[,minute[,decond[,microsecond[,tzinfo]]]])

常用的类方法与属性:

time.max 表示的最大时间
time.min                  表示的最小时间
time.resolution 时间的最小单位,这里是1微秒                                                                         

常用的方法与属性:

t.hour
t.minute               
t.second
t.microsecond 微秒
t.tzinfo 时区信息
t.replace() 用参数指定替代(时,分,秒,微秒,时区)对象,生成并返回新的对象
t.isoformat() 返回'HH:MM:SS'格式字符串
t.strftime() 返回自定义格式化字符串

3. La classe Datetime

équivaut à combiner la date et l'heure

datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])

Les méthodes de classe couramment utilisées sont comme suit Attributs :

tr>Intégrer les objets date et heure spécifiés Pour les objets datetime
datetime.max 最大日期
datetime.min 最小日期
datetime.resolution datetime对象所表示日期的最小单位,1微秒
datetime.today() 返回当前本地时间
datetime.now([tz]) 返回当前本地时间,如果指定tz,则返回tz时区当地时间
datetime.utcnow() 返回当前UTC时间
datetime.fromtimestamp(timestamp[,tz]) 根据给定的时间戳返回datetime对象,如果指定tz,则返回tz时区datetime对象
datetime.utcfromtimestamp(timestamp) 根据时间戳创建一个datetime对象
datetime.combine(date,time) 把指定的date和time对象整合为datetime对象
datetime.strftime(date_string,format) 将格式化字符串转换为datetime对象
datetime.max
Date maximale
datetime.min Date minimale
datetime.resolution La plus petite unité de date représentée par l'objet datetime, 1 microseconde
datetime.today() Renvoyer l'heure locale actuelle
datetime.now ([tz ]) Renvoie l'heure locale actuelle Si tz est spécifié, renvoie l'heure locale dans le fuseau horaire tz
datetime.utcnow() Renvoyer l'heure UTC actuelle
datetime.fromtimestamp(timestamp[,tz]) Renvoie l'objet datetime en fonction de l'horodatage donné Si tz est spécifié, le L'objet datetime du fuseau horaire tz est renvoyé
datetime.utcfromtimestamp(timestamp) Créer un datetime basé sur l'objet d'horodatage
datetime.combine(date,time)
datetime.strftime(date_string ,format) Convertir une chaîne formatée en objet datetime

实现:

类方法

import datetime
import time
print(datetime.datetime.resolution)
print(datetime.datetime.today())
print(datetime.datetime.now())
print(datetime.datetime.utcnow())
print(datetime.datetime.fromtimestamp(time.time()))
print(datetime.datetime.utcfromtimestamp(time.time()))
print(datetime.datetime.combine(datetime.date(2019, 3, 5), datetime.time(3, 2, 45)))
print(datetime.datetime.strftime(datetime.date(2019,9,2),&#39;%Y-%m-%d %X&#39;))

result

0:00:00.000001
2018-09-17 20:32:36.868500
2018-09-17 20:32:36.868500
2018-09-17 12:32:36.868500
2018-09-17 20:32:36.868500
2018-09-17 12:32:36.868500
2019-03-05 03:02:45
2019-09-02 00:00:00

其中常用的方法与属性:

dt.year

dt.month

dt.day

dt.hour

dt.minute

dt.second

dt.microseconde Subtil
dt .tzinfo Informations sur le fuseau horaire
dt.date() Récupérez l'objet date de dt
dt.time() Récupérez l'objet temporel de dt, tzinfo n'est aucun
dt.timetz() Obtenir l'objet temporel de dt, tzinfo est le même que le tzinfo de datetime
dt.replace() Spécifier le remplacement du paramètre (année, mois, jour, heure , minute, seconde, subtil , fuseau horaire), générer et renvoyer un nouvel objet
dt.timetuple() renvoie l'heure correspondant au Tuple de date et d'heure (time.struct_time) (hors tzinfo)
dt.utctimetuple() Renvoyer l'heure UTC Le tuple d'heure correspondant (hors tzinfo)
dt.timestamp() renvoie l'objet dt correspondant Timestamp
dt.toordinal() La date de retour est la première depuis 0001-01-01 Combien de jours (identique à la classe de date)
dt.weekday() Le jour de la semaine où la date de retour est, [ 1, 7], 1 signifie lundi (identique à la classe de date)
dt.isocalendar() Renvoie un tuple temporel au format (année, mois, jour) (identique à la classe de date)
dt.isoformat () Renvoyer une chaîne au format 'AAAA-MM-JJ HH:MM:SS'
dt.ctime() Équivalent à time.ctime (time.mktime(d.timetuple())) du module time
dt.strftime () Renvoie la chaîne d'heure au format spécifié

实现:

方法

import datetime,time
print(datetime.datetime.today().tzinfo)
print(datetime.datetime.today().date())
print(datetime.datetime.today().time())
print(datetime.datetime.today().timetz())
print(datetime.datetime.today().timetuple())
print(datetime.datetime.today().timestamp())
print(datetime.datetime.today().ctime())

result

None
2018-09-17
20:36:47.560500
20:36:47.560500
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=17, tm_hour=20, tm_min=36, tm_sec=47, tm_wday=0, tm_yday=260, tm_isdst=-1)
1537187807.5605
Mon Sep 17 20:36:47 2018

4、timedelta类

时间加减(代表了两个datetime之间的时间差)

datetime.timedalta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0 ,hours=0,weeks=0)

在日期上做天,小时,分钟,秒,毫秒,微秒,周 的时间计算

  • 1毫秒转换为1000微秒

  • 1分钟转换为60秒

  • 1小时转换为3600秒

  • 1周转换为7天

其中,timedelta内部只存储 days,seconds,microseconds

方法与属性:

td.days 天(范围[-999999999,999999999])
td.seconds 秒(范围[0,86399])                                                                                                   
td.microseconds 微秒(范围[0,999999])
td.total_seconds() 以秒为单位返回该时间差

实现:

方法

m = datetime.datetime.now()
print(m)
l = m + datetime.timedelta(3)
print(l)
n = m + datetime.timedelta(hours=4)
print(n)
span = l-m
print(span)
print(span.total_seconds())

result

2018-09-17 16:38:43.021000
2018-09-20 16:38:43.021000
2018-09-17 20:38:43.021000
3 days, 0:00:00
259200.0

5、tzinfo时区类

 其中,tzinfo是一个抽象类,所以不能直接被实例化

 时间转换需要用datetime和pytz来转换时区

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn