Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python:dates_et_heures [2020/12/14 06:00] marclebrun [Conversion de chaîne vers date/heure] |
python:dates_et_heures [2023/02/22 15:23] (Version actuelle) marclebrun [Début et fin de mois] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Dates et Heures ====== | ====== Dates et Heures ====== | ||
+ | |||
+ | ===== Date et heure ===== | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | d = datetime.date(1971, 4, 22) | ||
+ | t = datetime.time(8, 45) | ||
+ | </code> | ||
+ | |||
+ | Combiner une date avec une heure : | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | d = datetime.date(1971, 4, 22) | ||
+ | t = datetime.time(8, 45) | ||
+ | |||
+ | dt = datetime.datetime.combine(d, t) | ||
+ | </code> | ||
===== Date et heure actuelles ===== | ===== Date et heure actuelles ===== | ||
Ligne 16: | Ligne 36: | ||
=> Renvoie un objet ''datetime.datetime'' | => Renvoie un objet ''datetime.datetime'' | ||
+ | |||
+ | ===== Extraire la date d'une valeur date/heure ===== | ||
+ | |||
+ | Obtenir un objet **datetime.date** à partir d'un objet **datetime.datetime** | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | datetime.datetime.now() | ||
+ | # datetime.datetime(2020, 12, 17, 7, 11, 9, 23066) | ||
+ | |||
+ | datetime.datetime.now().date | ||
+ | # datetime.date(2020, 12, 17) | ||
+ | </code> | ||
===== Conversion de date/heure vers chaîne ===== | ===== Conversion de date/heure vers chaîne ===== | ||
Ligne 26: | Ligne 60: | ||
datetime.datetime.now().strftime("%m/%d/%Y, %H:%M:%S") | datetime.datetime.now().strftime("%m/%d/%Y, %H:%M:%S") | ||
# '12/14/2020, 06:49:17' | # '12/14/2020, 06:49:17' | ||
+ | |||
+ | datetime.datetime.now().strftime("%Y%m%d-%H%M") | ||
+ | # '20201412-0649' | ||
</code> | </code> | ||
Ligne 47: | Ligne 84: | ||
datetime.datetime.strptime("1971-04-22 08:30:25", "%Y-%m-%d %H:%M:%S") | datetime.datetime.strptime("1971-04-22 08:30:25", "%Y-%m-%d %H:%M:%S") | ||
# datetime.datetime(1971, 4, 22, 8, 30, 25) | # datetime.datetime(1971, 4, 22, 8, 30, 25) | ||
+ | |||
+ | datetime.datetime.strptime("1971-04-22", "%Y-%m-%d") | ||
+ | # datetime.datetime(1971, 4, 22, 0, 0) | ||
+ | |||
+ | datetime.datetime.strptime("1971-04-22", "%Y-%m-%d").date() | ||
+ | # datetime.date(1971, 4, 22) | ||
</code> | </code> | ||
- | Format **ISO 8601** : | + | Format **ISO 8601** :!: Python min **3.7** :!: : |
<code python> | <code python> | ||
Ligne 83: | Ligne 126: | ||
=> les variables ''lastMonthStart'' et ''lastMonthDay'' sont du type ''datetime.date''. | => les variables ''lastMonthStart'' et ''lastMonthDay'' sont du type ''datetime.date''. | ||
+ | Dates de début et de fin du mois en cours : | ||
+ | |||
+ | <code python> | ||
+ | import datetime, calendar | ||
+ | |||
+ | def first_day_this_month(): | ||
+ | today = datetime.date.today() | ||
+ | return today.replace(day = 1) | ||
+ | |||
+ | def last_day_this_month(): | ||
+ | today = datetime.date.today() | ||
+ | monthrange = calendar.monthrange(today.year, today.month) | ||
+ | return today.replace(day = monthrange[1]) | ||
+ | </code> | ||
+ | |||
+ | => Ces fonctions renvoient une valeur de type ''datetime.date'' | ||
+ | |||
+ | ===== Numéro de semaine / Jour de la semaine ===== | ||
+ | |||
+ | ==== Jour de la semaine ==== | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | today = datetime.date.today() | ||
+ | |||
+ | # indice du jour (voir tableau ci-dessous) | ||
+ | jour = today.weekday() | ||
+ | |||
+ | # nom du jour | ||
+ | print("Nous sommes un " + today.strftime('%A')) | ||
+ | </code> | ||
+ | |||
+ | ^ 0 | Monday | | ||
+ | ^ 1 | Tuesday | | ||
+ | ^ 2 | Wednesday | | ||
+ | ^ 3 | Thursday | | ||
+ | ^ 4 | Friday | | ||
+ | ^ 5 | Saturday | | ||
+ | ^ 6 | Sunday | | ||
+ | |||
+ | ==== Numéro de semaine ==== | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | today = datetime.date.today() | ||
+ | |||
+ | # Afficher le numéro de semaine avec %W | ||
+ | print("Nous sommes en semaine " + today.strftime('%W')) | ||
+ | |||
+ | # L'obtenir sous forme numérique | ||
+ | semaine = int(today.strftime('%W')) | ||
+ | </code> | ||
+ | |||
+ | ==== Isocalendar ==== | ||
+ | |||
+ | Une meilleure méthode :-) permet d'obtenir la semaine et le jour de la semaine, mais | ||
+ | **attention** les numéros de jours correspondent à une norme différente : | ||
+ | |||
+ | ^ 1 | Monday | | ||
+ | ^ 2 | Tuesday | | ||
+ | ^ 3 | Wednesday | | ||
+ | ^ 4 | Thursday | | ||
+ | ^ 5 | Friday | | ||
+ | ^ 6 | Saturday | | ||
+ | ^ 7 | Sunday | | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | today = datetime.date.today() | ||
+ | |||
+ | i = today.isocalendar() | ||
+ | annee = i.year | ||
+ | semaine = i.week | ||
+ | jour = i.weekday | ||
+ | </code> | ||