Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

Python当打之年
Python当打之年nach vorne
2023-08-11 16:12:59615Durchsuche

Im Leben und im Beruf beschäftigt sich jeder von uns jeden Tag mit Zeit:

  • Wann stehst du morgens auf?

  • Wie viele Minuten dauert es, bis die U-Bahn ankommt?

  • Wann beginnt mittags die Mittagspause?

  • Welcher Wochentag ist morgen?

  • Es ist 2 Monate her, seit du das letzte Mal Kleidung gekauft hast?

  • Mein Chef hat mich gebeten, dem Code eine Funktion für geplante Aufgaben hinzuzufügen. Was soll ich tun?

In verschiedenen Situationen treten unterschiedliche Zeitprobleme auf: Bestimmte Zeitpunkte, Zeitintervalle, Wochentage usw. Wir kollidieren ständig mit der Zeit. In diesem Artikel werden zeitbezogene Klassen, ihre Methoden und Attribute mithilfe von Python ausführlich erläutert Dafür müssen wir zunächst ein Konzept haben:

Zeitstempel
. Dieser Artikel bezieht sich speziell auf den Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)-Zeitstempel.

Zeitstempel Unter Zeitstempel versteht man das Hinzufügen von Identifikationstexten wie Uhrzeit oder Datum usw. zu einer Reihe von Daten, um sicherzustellen, dass die lokale Datenaktualisierungssequenz mit der Remote-Datenaktualisierungssequenz übereinstimmt.

unixDer Zeitstempel ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 (Mitternacht UTC/GMT) vergangen sind, unabhängig von Schaltsekunden. 1970-01-01 ist oft die Zeit, die wir nach der Konvertierung des leeren Zeitstempels erhalten, wenn die Zeit in MySQL leer ist. Eine Stunde wird als UNIX-Zeitstempel im Format 3600 Sekunden ausgedrückt; ein Tag wird als UNIX-Zeitstempel von 86400 Sekunden ausgedrückt, Schaltsekunden werden nicht gezählt. Die spezifische Vergleichstabelle lautet wie folgt: unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。1970-01-01就是经常我们在MySQL中时间为空的时候,转化空的时间戳之后得到的时间。一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。具体的对照表如下:

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

1.2时间戳转化网站

下面介绍几个时间戳和具体时间之间相互转化的网站:

1、站长工具:https://tool.chinaz.com/tools/unixtime.aspx

2、在线工具:https://tool.lu/timestamp/

3、Json在线解析:https://www.sojson.com/unixtime.html

4、Unix时间戳在线转换(菜鸟工具):https://c.runoob.com/front-end/852

5、北京时间(时间与时间戳互换工具):http://www.beijing-time.org/shijianchuo/

介绍完时间戳的基本知识,下面重点讲解3个与时间和日期相关的Python库:

  • calendar

  • time

  • datetime

2.calendar

calendar

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

1.2 Website zur Zeitstempelkonvertierung

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)Im Folgenden werden verschiedene Möglichkeiten zum Konvertieren zwischen Zeitstempeln und bestimmten Zeiten vorgestellt Website:

1. Webmaster-Tools: https://tool.chinaz.com/tools/unixtime.aspx

🎜2 Online-Tools: https://tool.lu/timestamp/🎜🎜3 ://www.sojson.com/unixtime.html🎜🎜4. Unix-Zeitstempel-Online-Konvertierung (Rookie-Tool): https://c.runoob.com/front-end/852🎜🎜5. Pekinger Zeit (Zeit und Zeitstempel). Austauschtool): http://www.beijing-time.org/shijianchuo/🎜🎜Nachdem wir das Grundwissen über Zeitstempel eingeführt haben, konzentrieren wir uns auf drei Python-Bibliotheken, die sich auf Zeit und Datum beziehen: 🎜
  • 🎜calendar🎜🎜

  • 🎜time🎜🎜

  • 🎜datetime🎜🎜 li>

2.calendar🎜 🎜

🎜calendars chinesische Bedeutung ist "Kalender", also ist es tatsächlich so geeignet für Termine, insbesondere in Form eines Kalenders. 🎜🎜🎜2.1 Modulinhalt🎜🎜🎜🎜🎜🎜Das Folgende ist ein Beispiel:🎜

2.2Kalender

Wir zeigen den Kalender des kommenden Jahres 2020 mit den Standardparametern an:

import calendar
year = calendar.calendar(2020)
print(year)

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

Ändern Sie die Parameter und zeigen Sie ihn erneut an:

year = calendar.calendar(2020,w=3,l=1,c=8)
print(year)

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

Wir haben The gefunden Der gesamte Kalender ändert sich. Er ist breiter und die Woche wird auch auf Englisch mit 3 Buchstaben angezeigt. Bitte erläutern Sie die Bedeutung der drei Parameter:

  • c: monatlicher Intervallabstand

  • w: täglicher Breitenintervall ?? 2.3isleap(year)

  • Die Funktion dieser Funktion besteht darin,

    zu bestimmen, ob ein bestimmtes Jahr ein Schaltjahr ist. Wenn ja, wird True zurückgegeben, andernfalls wird False zurückgegeben.

  • Gewöhnliche Jahre können durch 4 teilbar sein, aber nicht durch 100. Sie werden als gewöhnliche Schaltjahre bezeichnet.

Jahre sind in Hunderten angegeben und müssen durch 400 teilbar sein. Sie werden als Jahrhundertschaltjahre bezeichnet 21*w+18+2*c2,4 Schalttage (y1, y2)

Bestimmen Sie, wie viele Schaltjahre Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig) zwischen zwei Jahren liegen, einschließlich y1, aber nicht y2, ähnlich wie
beim Python-Slicing, einschließlich des Kopfes, aber nicht des Schwanzes

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

2.5month(year,month,w=2,l=1)

Diese Funktion gibt yearyearMonatDer Monatskalender hat nur zwei Titelzeilen, eine für jede Woche. Die tägliche Intervallbreite beträgt w Zeichen und die Länge jeder Zeile beträgt 7*w + 6, wobei l die Anzahl der Zeilen pro Woche istyear年的month月的日历,只有两行标题,一周一行。每日间隔宽度为w个字符,每行的长度为7*w + 6,其中l是每星期的行数

首先看看默认效果;

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

接下来我们改变w和l两个参数:

1、改变w,我们发现星期的表示变成了3个字母;同时每天之间的间隔变宽了(左右间隔)

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

2、改变参数l

Schauen Sie sich zuerst den Standardeffekt an.
Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig) l Parameter:

1. Ändern Sie w, wir stellen fest, dass die Darstellung der Woche zu 3 Buchstaben geworden ist; gleichzeitig ist das Intervall zwischen jedem Tag ist breiter geworden (linkes und rechtes Intervall)Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

2 Änderung Parameterl, wir stellen fest, dass das Intervall (oben und unten) vor jeder Woche größer wird

  • 2,6Monatskalender(Jahr,Monat)

    gibt das Jahr in Listenform zurück. Monatskalender, in Listen- oder Listenform. Jede Unterliste ist für eine Woche gültig.
  • Wenn für diesen Monat kein Datum vorhanden ist, wird es durch 0
  • dargestellt. Jede Unterliste beginnt am 1. der Woche und die Merkmale werden wie folgt zusammengefasst:

  • Jede Unterliste stellt eine Woche dar.

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)
Von Montag bis Sonntag werden Daten, die in diesem Monat nicht erscheinen, durch ersetzt 0

Nehmen wir den Dezember 2020 als Beispiel:

🎜🎜🎜🎜Verglichen mit dem Kalender oben haben wir Folgendes festgestellt: 🎜Die Position, an der 0 erscheint, erscheint im Dezember nicht🎜🎜🎜Werfen wir einen Blick auf den Kalender für März 2020: 🎜
Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

2,7Monatsbereich (Jahr, Monat)

Das von dieser Funktion zurückgegebene Ergebnis ist ein Tupel. Es gibt zwei Werte im Tupel. Der Wert a repräsentiert den Tag des Woche, in der der Monat beginnt; Es ist festgelegt, dass 6 den Sonntag darstellt und der Wert 0-6 ist. Der Wert b stellt die Gesamtzahl der Tage im Monat dar. Lassen Sie es uns anhand eines Beispiels erklären Nehmen wir als Beispiel den Dezember 2020: (a,b)

  • Die 1 im Ergebnis bedeutet, dass der Dezember am 2. der Woche beginnt (0-6, 6 steht für Sonntag) und der Monat insgesamt 31 Tage hat

    2.8weekday(y,m,d)
  • Die Wochentagsmethode besteht darin, Jahr, Monat und Tag einzugeben. Wir können dann wissen, welcher Wochentag es ist. Der Rückgabewert ist 0-6, 0 steht für Montag , 6 steht für Sonntag

  • Lassen Sie es uns anhand eines Beispiels erklären, am Beispiel des 12. Dezember:

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)Double 12 Es ist Samstag und das zurückgegebene Ergebnis ist 5. 5 steht für Samstag, was genau übereinstimmt.

3.time

Das Zeitmodul ist das am häufigsten verwendete Modul mit Zeitfunktionen. Es wird häufig in den zeitbezogenen Anforderungen von Python verwendet unten.
Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)
3.1 Modulinhalt

Schauen wir uns zunächst die Gesamtnutzung des Moduls an

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

3.2time

time.time() dient dazu, die aktuelle Zeit abzurufen. Genauer gesagt geht es darum,Zeitstempel der aktuellen Zeit. time.time()是获取当前的时间,更加严格地说,是获取当前时间的时间戳

再次理解时间戳:它是以1970年1月1日0时0份0秒为计时起点,计算到当前的时间长度(不考虑闰秒)

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

3.3localtime

time.localtime打印当前的时间,得到的结果是时间元组,具体含义:

笔记:结果是时间元组

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

time.localtime的参数默认是time.time()

Verstehen Sie den Zeitstempel noch einmal: Er beginnt bei 0:00:00 Uhr am 1. Januar 1970 und berechnet sich auf die aktuelle Zeitspanne (wobei keine Schaltsekunden berücksichtigt werden)

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)
  • 3.3localtime

  • time.localtime wird durch Drucken der aktuellen Uhrzeit erhalten. Das Ergebnis ist ein Zeittupel mit spezifischer Bedeutung:
  • Hinweise: Ergebnisse Es ist ein Zeittupel

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

Die Standardparameter von time.localtime sind time.time() Zeitstempel, den Sie eingeben können it yourself Ein bestimmter Zeitstempel, um die entsprechende Zeit zu erhalten🎜🎜🎜🎜🎜Standardmäßiger aktueller Zeitstempel🎜🎜🎜🎜🎜🎜Geben Sie einen Zeitstempel an🎜🎜
Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

3.4gmtime

localtime()Das Ergebnis istOrtszeit, wenn Internationalisierung erforderlich ist, verwenden Sie gmtime() Am besten verwenden Sie die Greenwich Mean Time. localtime()得到的是本地时间,如果需要国际化,使用gmtime(),最好是使用格林威治时间。

格林威治标准时间:位于英国伦敦郊区的皇家格林威治天文台的标准时间,本初子午线经过那里。

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

3.5asctime

time.asctime的参数为空时,默认是以time.localtime的值为参数,得到当前的日期、时间、星期;另外,我们也可以自己设置参数,参数是时间元组

  • 使用当前时间的默认时间元组localtime

  • 自己指定一个时间元组

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

获取当前时间的具体时间和日期:

Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

3.6ctime

ctime

Greenwich Mean Time: Standardzeit am Royal Greenwich Observatory in einem Vorort von London, England, wo der Nullmeridian verläuft. 🎜🎜Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)🎜🎜🎜3.5asctime🎜🎜🎜Wenn der Parameter von time.asctime leer ist, ist der StandardwertNehmen Sie den Wert von time.localtime als Parameter, um das aktuelle Datum, die aktuelle Uhrzeit und die aktuelle Woche zu erhalten; außerdem können wir die Parameter auch selbst festlegen, Der Parameter ist ein Zeittupel🎜
  • 🎜Verwenden Sie die Standardeinstellung der aktuellen Zeit. Zeittupel Ortszeit🎜🎜🎜

  • 🎜Angeben ein Zeittupel selbst🎜🎜🎜 🎜🎜Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)🎜🎜Erhalten Sie die genaue Uhrzeit und das Datum der aktuellen Zeit: 🎜🎜Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)🎜🎜🎜3.6ctime🎜🎜🎜ctimes Parameter ist standardmäßig ein Zeitstempel; wenn nicht, können Sie auch einen Zeitstempel angeben🎜

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

    3.7mktime

    mktime() benötigt auch ein Zeittupel als Parameter und gibt einen Zeitstempel zurück, EntsprichtUmkehrung der Ortszeit Prozess : mktime()也是以时间元组为参数的,它返回的是时间戳,相当于是localtime的逆向过程

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

    3.8strftime

    strftime()是按照我们指定的格式将时间元组转化为字符串;如果不指定时间元组,默认是当前时间localtime()。常用到的时间格式见下表:

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

    我们举例说明:

    • 字符串中的分隔符我们可以任意指定

    • 可以同时显示年月日时分秒等

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

    3.9strptime

    strptime()

    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)
    • 3.8strftime

      strftime() hat das von uns angegebene FormatZeittupel in String konvertieren; Wenn kein Zeittupel angegeben ist, ist der Standardwert die aktuelle Zeitlocaltime(). Die häufig verwendeten Zeitformate sind in der folgenden Tabelle aufgeführt:
    • Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      Lass uns Geben Sie ein Beispiel:

      🎜🎜🎜Wir können das Trennzeichen in der Zeichenfolge beliebig angeben🎜🎜🎜🎜🎜🎜 können Jahr, Monat, Tag, Stunde, Minute, Sekunde usw. gleichzeitig anzeigen🎜🎜🎜 ul>🎜Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)🎜🎜🎜3.9strptime🎜🎜🎜strptime() Es dient dazu, eine Zeichenfolge in ein Zeittupel umzuwandeln. Worauf wir besonders achten müssen, ist, dass es zwei Parameter hat: 🎜🎜🎜🎜🎜Die zu seinde Zeichenfolge konvertiert🎜🎜🎜🎜🎜🎜Das Format, das der Zeitzeichenfolge entspricht, ist das Format, das oben in der Tabelle erwähnt wird?
    Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

    4.datetime

    Obwohl time Modul kann bereits viele Probleme lösen, aber in der tatsächlichen Arbeit und im Geschäftsbedarf Wir Wir benötigen mehr Tools, um die Verwendung komfortabler und schneller zu gestalten. datetime ist eines der sehr nützlichen Module. Mehrere häufig verwendete Klassen im datetime-Modul sind wie folgt: time模块已经能够解决很多的问题,但是实际工作和业务需求中需要更多的工具,让我们使用起来更方便和快捷,datetime便是其中一个很好用的模块。datetime模块中几个常用的类如下:

    • date:日期类,常用属性:year/month/day

    • time:时间类,常用属性:hour/minute/second/microsecond

    • datetime:日期时间类

    • timedelta:时间间隔,即两个时间点之间的时间长度

    • tzinfo

      • Datum: Datumsklasse, allgemeine Attribute: Jahr/Monat/Tag 🎜
      • Zeit: Zeitklasse, häufig verwendete Attribute: <code style="font-size: inherit;line-height: inherit;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left : 2px; Farbe: rgb(233, 105, 0);Hintergrund: rgb(248, 248, 248);">Stunde/Minute/Sekunde/Mikrosekunde🎜🎜

      • datetime: Datums- und Zeitklasse🎜🎜

        timedelta: Zeitintervall, also die Zeitspanne zwischen zwei Zeitpunkten🎜🎜

      • tzinfo: Zeitzonenklasse🎜

      4.1模块内容

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)


      4.2date

      首先我们引入date类,并创建一个日期对象:

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      1、然后我们可以操作这个日期对象的各种属性:后面加上()

      print("当前日期:",today)  # 当前日期
      print("当前日期(字符串):",today.ctime())   # 返回日期的字符串
      print("时间元组信息:",today.timetuple())   # 当前日期的时间元组信息
      print("年:",today.year)   # 返回today对象的年份
      print("月:",today.month)  # 返回today对象的月份
      print("日:",today.day)   # 返回today对象的日
      print("星期:",today.weekday())  # 0代表星期一,类推
      print("公历序数:",today.toordinal())  # 返回公历日期的序数
      print("年/周数/星期:",today.isocalendar())   # 返回一个元组:一年中的第几周,星期几
      
      # 结果显示
      当前日期: 2020-12-25
      当前日期(字符串):Fri Dec 25 00:00:00 2020
      时间元组信息:time.struct_time(tm_year=2020, tm_mon=12, tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=360, tm_isdst=-1)
      年: 2020
      月: 12
      日: 25
      星期: 4
      公历序数: 737784
      年/周数/星期: (2020, 52, 5)

      2、date类中时间和时间戳的转换:

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      具体时间的时间戳转成日期:

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      3、格式化时间相关,格式参照time模块中的strftime方法

      from datetime import datetime, date, time
      today = date.today()
      
      print(today)
      # 2020-12-26  默认连接符号是-
      
      print(today.strftime("%Y/%m/%d"))  # 指定连接符
      # 2020/12/26
      
      print(today.strftime("%Y:%m:%d"))
      # 2020:12:26
      
      print(today.strftime("%Y/%m/%d %H:%M:%S"))  # 转化为具体的时间
      # 2020/12/26 00:00:00

      4、修改日期使用replace方法

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      4.3time

      time类也是要生成time对象,包含hour、minute、second、microsecond,我们还是通过例子来学习:

      from datetime import time
      
      t = time(10,20,30,40)
      print(t.hour)  # 时分秒
      print(t.minute)
      print(t.second)
      print(t.microsecond)  # 微秒
      
      # 结果
      10
      20
      30
      40

      4.4datetime

      datetime类包含date类和time类的全部信息,下面?是类方法相关的:

      from  datetime import datetime
      
      print(datetime.today())
      print(datetime.now())
      print(datetime.utcnow())# 返回当前UTC日期和时间的datetime对象
      print(datetime.fromtimestamp(1697302830))  # 时间戳的datetime对象
      print(datetime.fromordinal(699000) )
      print(datetime.combine(date(2020,12,25), time(11,22,54)))  # 拼接日期和时间
      print(datetime.strptime("2020-12-25","%Y-%m-%d"))
      
      # 结果
      2020-12-25 23:24:42.481845
      2020-12-25 23:24:42.482056
      2020-12-25 15:24:42.482140
      2023-10-15 01:00:30
      1914-10-19 00:00:00
      2020-12-25 11:22:54
      2020-12-25 00:00:00

      再看看相关对象和属性相关:

      from datetime import datetime 
      
      d = datetime(2020,12,25,11,24,23)
      
      print(d.date())
      print(d.time())
      print(d.timetz())  # 从datetime中拆分出具体时区属性的time
      print(d.replace(year=2021,month=1))  # 替换
      print(d.timetuple())  # 时间元组
      print(d.toordinal())  # 和date.toordinal一样
      print(d.weekday())
      print(d.isoweekday())
      print(d.isocalendar())
      print(d.isoformat())
      print(d.strftime("%Y-%m-%d :%H:%M:%S"))
      
      # 结果
      2020-12-25
      11:24:23
      11:24:23
      2021-01-25 11:24:23
      time.struct_time(tm_year=2020, tm_mon=12, tm_mday=25, tm_hour=11, tm_min=24, tm_sec=23, tm_wday=4, tm_yday=360, tm_isdst=-1)
      737784
      4
      5
      (2020, 52, 5)
      2020-12-25T11:24:23
      2020-12-25 :11:24:23

      4.5timedelta

      timedelta对象表示的是一个时间段,即两个日期date或者日期时间datetime之间的差;支持参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      4.6tzinfo

      本地时间指的是我们系统本身设定时区的时间,例如中国处于北京时间,常说的东八区UTC+8:00datetime类有一个时区属性tzinfo

      tzinfo是一个关于时区信息的类,是一个抽象的基类,不能直接被实例化来使用。它的默认值是None,无法区分具体是哪个时区,需要我们强制指定一个之后才能使用。

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      因为本身系统的时区刚好在中国处于东八区,所以上述代码是能够正常运行的,结果也是OK的。那如果我们想切换到其他时区的时间,该如何操作呢?这个时候我们需要进行时区的切换。

      1、我们先通过utcnow()获取到当前的UTC时间

      utc_now = datetime.utcnow().replace(tzinfo=timezone.utc)  # 指定utc时区
      print(utc_now)
      
      # 结果
      2020-12-26 01:36:33.975427+00:00

      2、通过astimezone()将时区指定为我们想转换的时区,比如东八区(北京时间):

      # 通过astimezone切换到东八区
      
      beijing = utc_now.astimezone(timezone(timedelta(hours=8)))
      print(beijing)
      
      # 结果
      2020-12-26 09:36:33.975427+08:00

      用同样的方法切到东九区,东京时间:

      # UTC时区切换到东九区:东京时间
      
      tokyo = utc_now.astimezone(timezone(timedelta(hours=9)))
      print(tokyo)
      
      # 结果
      2020-12-26 10:36:33.975427+09:00

      还可以直接从北京时间切换到东京时间

      # 北京时间(东八区)直接切换到东京时间(东九区)
      
      tokyo_new = beijing.astimezone(timezone(timedelta(hours=9)))
      print(tokyo_new)
      
      # 结果
      2020-12-26 10:36:33.975427+09:00

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      5.常用时间转化

      下面介绍几个工作中用到的时间转化小技巧:

      1. 时间戳转日期

      2. 日期转时间戳

      3. 格式化时间

      4. 指定格式获取当前时间

      5.1时间戳转成日期

      时间戳转成具体时间,我们需要两个函数:

      • time.localtime:将时间戳转成时间元组形式

      • time.strftime:将时间元组数据转成我们需要的形式

      import time
      now_timestamp = time.time()  # 获取当前时间的时间戳
      
      # 时间戳先转成时间元组,strftime在转成指定格式
      now_tuple = time.localtime(now_timestamp)
      time.strftime("%Y/%m/%d %H:%M:%S", now_tuple)
      
      # 结果
      &#39;2020/12/26 11:19:01&#39;

      假设我们指定一个具体的时间戳来进行转换:

      import time
      timestamp = 1608852741  # 指定时间戳
      
      a = time.localtime(timestamp)  # 获得时间元组形式数据
      print("时间元组数据:",a)
      time.strftime("%Y/%m/%d %H:%M:%S", a)  # 格式化
      
      # 结果
      时间元组数据:time.struct_time(tm_year=2020, tm_mon=12, tm_mday=25, tm_hour=7, tm_min=32, tm_sec=21, tm_wday=4, tm_yday=360, tm_isdst=0)
      &#39;2020/12/25 07:32:21&#39;

      如果我们不想指定具体的格式,只想获取时间戳对应的时间,直接通过time.ctime即可:

      import time
      time.ctime(1608852741)
      
      # 结果
      &#39;Fri Dec 25 07:32:21 2020&#39;

      5.2日期时间转成时间戳

      日期时间转成时间戳格式,我们需要使用两个方法:

      • strptime():将时间转换成时间数组

      • mktime():将时间数组转换成时间戳

      通过具体的案例来学习一下:

      date = "2020-12-26 11:45:34"
      
      # 1、时间字符串转成时间数组形式
      date_array = time.strptime(date, "%Y-%m-%d %H:%M:%S")
      
      # 2、查看时间数组数据
      print("时间数组:", date_array)
      
      # 3、mktime时间数组转成时间戳
      time.mktime(date_array)
      
      # 结果
      时间数组:time.struct_time(tm_year=2020, tm_mon=12, tm_mday=26, tm_hour=11, tm_min=45, tm_sec=34, tm_wday=5, tm_yday=361, tm_isdst=-1)
      1608954334.0

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      5.3格式化时间

      工作需求中有时候给定的时间格式未必是我们能够直接使用,所以可能需要进行格式的转换,需要使用两个方法:

      • strptime():将时间转换成时间数组

      • strftime():重新格式化时间

      通过案例来进行学习:

      import time
      
      old = "2020-12-12 12:28:45"
      
      # 1、转换成时间数组
      time_array = time.strptime(old, "%Y-%m-%d %H:%M:%S")
      
      # 2、转换成新的时间格式(20201212-20:28:54)
      new = time.strftime("%Y%m%d-%H:%M:%S",time_array)  # 指定显示格式
      
      print("原格式时间:",old)
      print("新格式时间:",new)
      
      # 结果
      原格式时间: 2020-12-12 12:28:45
      新格式时间: 20201212-12:28:45

      Eine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig)

      5.4指定格式获取当前时间

      为了能够获取到指定格式的当前时间,我们分为3个步骤:

      • time.time():获取当前时间

      • time.localtime():转成时间元组

      • time.strftime():重新格式化时间

      通过一个案例来学习:

      # 1、时间戳
      old_time = time.time()
      # 2、时间元组
      time_array = time.localtime(old_time)
      # 3、指定格式输出
      new_time = time.strftime("%Y/%m/%d %H:%M:%S", time_array)
      print(new_time)
      
      # 结果
      2020/12/26 11:56:08

      6.总结

      本文通过各种案例详细介绍了Python中关于时间输出和转化的3个模块:calendar、time、datetime,最后总结了4个工作中常用的时间转化技巧,希望对大家掌握Python中的时间输出和转化有所帮助,不再被时间困扰。

Das obige ist der detaillierte Inhalt vonEine Zusammenfassung der Python-Zeitkonvertierung, die Sie auf einmal erlernen können (sehr vollständig). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Python当打之年. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen