logo

Epocha Pythonu po dátum a čas

V nasledujúcom návode pochopíme prevod epochy na DateTime v programovací jazyk Python pomocou niektorých príkladov. Epochu Pythonu použijeme na prevod epochy na dátum a čas. Budeme sa venovať aj nasledujúcim témam:

  1. Prevod DateTime na čas epochy
  2. Konverzia epochy na reťazec DateTime
  3. Prevod epochy na milisekúnd DateTime
  4. Konverzia epochy na časové pásmo DateTime
  5. Prevod Unixovej epochy na DateTime
  6. Prevod DateTime na čas epochy v milisekundách
  7. Konverzia časovej pečiatky epochy na dátum a čas
  8. Pythonská epocha DateTime year je mimo rozsahu

Ale skôr ako začneme, dovoľte nám v krátkosti pochopiť čas epochy v Pythone.

Čo je čas epochy v Pythone?

Čas epochy, tiež nazývaný čas Unix alebo čas POSIX, je rámec pre sledovanie času ako rôznych sekúnd, ktoré uplynuli od veku Unixu, čo je 12:00 UTC 1. januára 1970. Tento rámec sa široko používa pri vytváraní rámcov a programovacích dialektov. vrátane Pythonu.

V Pythone môžeme pracovať s vekovým časom pomocou časového modulu, ktorý poskytuje možnosti na riadenie hodnôt súvisiacich s časom. Jednou zo základných schopností na riadenie veku je time.time(), ktorá vracia prebiehajúci čas v sekundách od veku ako číslo driftujúceho bodu.

Konverzia času epochy na DateTime pomocou Pythonu

Môžeme použiť Python datetime.fromtimestamp() s cieľom previesť čas epochy na dátum a čas. Uvažujme o nasledujúcom príklade, ktorý demonštruje konverziu epochy Pythonu na DateTime.

Príklad:

 # Here, we are importing the datetime package import datetime # Here, we are given epoch time epoch_time = 40246871 # Here, we are using the datetime.fromtimestamp() function date_time = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are printing the value print('Given epoch time:', epoch_time) print('Converted Datetime:', date_time ) 

Výkon:

 Given epoch time: 40246871 Converted Datetime: 1971-04-12 01:11:11 

Vysvetlenie:

Vo vyššie uvedenom príklade sa importuje modul datetime, pričom sa berie do úvahy kontrola hodnôt dátumu a času. Premenná epoch_time sa potom rozdelí na konkrétnu hodnotu 40246871, čím sa zameria na skĺznutie o sekundy od doby Unixu (1. januára 1970, 00:00:00 UTC).

Hlavná užitočnosť obsahu spočíva v použití schopnosti datetime.fromtimestamp(). Táto schopnosť si vyžaduje určitú investíciu (epoch_time) a mení ju na zrozumiteľnejšiu konfiguráciu vytvorením objektu datetime. Následný objekt datetime, ktorý adresuje rovnaký dátum a čas, sa odloží do premennej dátum_čas.

Aby bola zmena vnímateľná, obsah zahŕňa dve vyhlásenia print(). Prvý, print('Given age time:', epoch_time), zobrazuje prvé ocenenie veku a času, zatiaľ čo ďalší, print('Converted Datetime:', date_time), prináša zmenenú hodnotu oproti dátumu a času.

Konverzia DateTime na čas epochy pomocou Pythonu

Na prevod DateTime na čas epochy použijeme časová značka() funkciu. Najprv sa pozrime na nasledujúci príklad ilustrujúci prevod DateTime na čas epochy.

Príklad:

 # Here, we are importing the datetime package import datetime # Here, we are using the timestamp() function to convert datetime into epoch time epoch_time = datetime.datetime(2021, 6, 9, 2, 0).timestamp() # Here, we are printing the values print('Converted epoch time:', epoch_time) 

Výkon:

 Converted epoch time: 1623184200.0 

Vysvetlenie:

Vo vyššie uvedenom príklade je importovaný modul datetime na spracovanie činností súvisiacich s dátumom a časom. Obsah zobrazuje zmenu konkrétneho dátumu a času na vekový čas pomocou funkcie časovej pečiatky ().

Interakcia sa začína vytvorením objektu dátumu a času s adresou 9. júna 2021 o 2:00. Tento objekt dátumu a času sa potom odovzdá ako spor s funkciou časovej pečiatky (), ktorá vráti rovnaký čas veku (množstvo sekúnd, ktoré uplynulo od doby Unixu, 1. januára 1970, 00:00:00 UTC). Následný vekový čas je odložený v premennej epoch_time.

Obsah končí vyhlásením print(): print('Converted age time:', epoch_time), ktoré poskytuje určený čas veku pre preddefinovaný dátum a čas. Konverzia času epochy na reťazec DateTime pomocou Pythonu Aby sme čas epochy previedli na reťazec datetime, musíme previesť čas epochy na reťazec datetime a potom odovzdať výslednú premennú datetime funkcii strftime(), aby sme ju úspešne previedli na reťazec datetime.

Príklad:

 # Here, we are importing the datetime package import datetime # Here, we are given epoch time epoch_time = 700024 # Here, we are using datetime.fromtimestamp() function to convert epoch time into datetime object mytimestamp = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are using strftime() function to convert datetime_str = mytimestamp.strftime( '%Y - %m - %d %H : %M : %S') # Here, we are printing the values print('Given epoch time:', epoch_time) print('Converted datetime string:', datetime_str) 

Výkon:

 Given epoch time: 700024 Converted datetime string: 1970 - 01 - 09 07 : 57 : 04 

Vysvetlenie:

Vo vyššie uvedenom príklade sme opäť importovali Dátum Čas knižnica. Potom sme použili datetime.fromtimestamp() s cieľom previesť danú epochu na dátum a potom ju odovzdať strftime() funkcia na konverziu objektu datetime na reťazec datetime. The strftime() parametre funkcií sú kódy formátu, v ktorých sme chceli reťazec prispôsobiť.

    %Aoznačuje rok% moznačuje mesiac%doznačuje deň%Hurčuje hodinu%Moznačuje minútu%Soznačuje sekundy

Prevod času epochy na milisekúnd DateTime pomocou Pythonu

Môžeme získať DateTime spolu s milisekundami z času epochy pomocou metódy, ktorú sme urobili pre konverziu času epochy na DateTime. Pozrime sa na nasledujúci príklad, ktorý demonštruje to isté.

Príklad:

 # Here, we are importing the datetime package import datetime # Here, we are given epoch time epoch_time = 402471.238201 # Here, we are using the datetime.fromtimestamp() function date_time = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are printing the value print('Given epoch time:', epoch_time) print('Converted Datetime:', date_time ) 

Výkon:

 Given epoch time: 402471.238201 Converted Datetime: 1970-01-05 21:17:51.238201 

Vysvetlenie:

Vo vyššie uvedenom príklade sa importuje modul datetime, aby pracoval so spracovaním aktivít súvisiacich s dátumom a časom. Základnou úlohou obsahu je zmeniť v priebehu daného vekového času, určeného ako 402471,238201 sekúnd, na zrozumiteľnú konfiguráciu využívajúcu objekt dátumu a času aj organizovaný reťazec.

Obsah sa vráti, aby využil schopnosť datetime.fromtimestamp() na zmenu v priebehu času na objekt typu datetime. Následný objekt datetime, odložený v premennej dátum_čas, je príkladom jemnosti porovnávania dátumu a času. Nakoniec obsah vytlačí prvý vek čas aj objekt zmenený cez dátum a čas.

Tieto proklamácie print() vytvárajú výťažok zobrazujúci hrubý vek a čas aj organizovaný objekt dátumu a času, čo poskytuje primerané zobrazenie prvej časovej pečiatky a jej prispôsobenia sa človeku.

Konverzia času epochy na časové pásmo DateTime pomocou Pythonu

Môžeme použiť časové pásmo() funkciu pytz s cieľom previesť čas epochy na časové pásmo DateTime. Uvažujme nasledujúci príklad demonštrujúci konverziu toho istého.

Príklad:

 # Here, we are importing the required package(s) and module(s) from datetime import datetime import pytz # Here, we are using the timezone() function my_timezone = pytz.timezone('CST6CDT') # Here, we are using the localize() function date_timezone = my_timezone.localize( datetime( 2021, 6, 10, 9, 34, 32 ), is_dst = None ) # Here, we are printing the values print( 'DateTime Time zone:', date_timezone ) 

Výkon:

 DateTime Time zone: 2021-06-10 09:34:32-05:00 

Vysvetlenie:

Vo vyššie uvedenom príklade sa modul datetime používa spolu s modulom pytz na prácu s objektmi dátumu a času v určitej časovej oblasti. Základným cieľom obsahu je vytvoriť objekt dátumu a času a výslovne uviesť jeho bod v časovom pásme na „CST6CDT“ (štandardný ohniskový čas s časom úspory slnečného svetla), potom v tomto bode vytlačiť nasledujúci dátum a čas.

Týmto spôsobom sa využíva schopnosť timezone() z pytz modulu na vytvorenie objektu časovej oblasti s adresou 'CST6CDT'. Potom sa na stanovenie bodu v časovej zóne pre konkrétny objekt typu datetime použije schopnosť obmedziť() z objektu časovej oblasti (10. jún 2021, 9:34:32)

Hranica is_dst=None ukazuje, že údaje o čase šetrenia svetla (DST) nie sú jednoznačne dané, čo umožňuje obmedzeniu() schopnosti rozhodnúť o vhodnom stave DST vzhľadom na vopred určený čas. Nakoniec obsah vytlačí nasledujúci objekt dátumu a času s výslovne nastavenou časovou oblasťou.

Konverzia času Unixovej epochy na DateTime pomocou Pythonu

Tento proces prevodu času Unixovej epochy na DateTime je podobný tomu, čo sme robili predtým. Tento proces zahŕňa datetime.fromtimestamp() funkciu na konverziu času Unixovej epochy na objekt DateTime a používa strftime() na transformáciu objektu do vhodného formátu DateTime.

Pozrime sa na nasledujúci príklad, ktorý demonštruje to isté.

Príklad:

 # Here, we are importing the datetime library import datetime # Here, we have defined a constant value for the epoch time epoch_time = 252384207 # Here, we are using the datetime.fromtimestamp() function datetime_obj = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are using the strftime() function datetime_str = datetime_obj.strftime( '%Y - %m - %d %H : %M : %S' ) # Here, we are printing the values print( 'Unix epoch time:', epoch_time ) print( 'DateTime:', datetime_str ) 

Výkon:

 Unix epoch time: 252384207 DateTime: 1977 - 12 - 31 08 : 13 : 27 

Vysvetlenie:

Vo vyššie uvedenom príklade sa modul dátumu a času používa na zmenu za daný vekový čas, označený ako 252384207 sekúnd, na zrozumiteľnejšiu organizáciu. Základným cieľom je vytvoriť objekt dátumu a času od veku a potom ho navrhnúť ako reťazec na ukážku. Obsah začína uvedením modulu dátumu a času. Schopnosť datetime.fromtimestamp() sa potom používa na zmenu v priebehu času na objekt datetime.

Následný objekt datetime, uložený v premennej datetime_obj, typizuje súvisiace detaily dátumu a času. Potom sa schopnosť strftime() využije na navrhnutie objektu datetime ako reťazca s konkrétnou organizáciou. Pre túto situáciu je indikovaná konfigurácia '%Y - %m - %d %H : %M : %S' s uvedením roku, mesiaca, dňa, hodiny, okamihu a sekundy.

Nakoniec obsah vytlačí prvý vek Unixu a usporiadaný reťazec dátumu a času. Tieto proklamácie print() vytvárajú výťažok zobrazujúci hrubý vek a čas a organizovaný reťazec dátumu a času, čo poskytuje nezameniteľný obraz prvej časovej pečiatky a jej prispôsobenia sa človeku.

Prevod DateTime na čas epochy v milisekundách pomocou Pythonu

Aby sme previedli epochu DateTime na milisekúndy, môžeme použiť strptime() funkcia na vrátenie objektu datetime zo zadaného reťazca a použitie časová značka() funkcia na konverziu objektu na sekundy. Okrem toho potrebujeme vynásobiť výslednú hodnotu tisícom, aby sme vytvorili epochu DateTime v milisekundách.

Uvažujme o príklade, ktorý demonštruje to isté.

Príklad:

 # Here, we are importing the datetime module from datetime import datetime # Here, we are using the strptime() function dt_obj = datetime.strptime( '10-6-2021 10:33:35,72', '%d-%m-%Y %H:%M:%S,%f') epoch_msec = dt_obj.timestamp() * 1000 print('epoch time in milliseconds:', epoch_msec) 

Výkon:

 epoch time in milliseconds: 1623301415720.0 

Vysvetlenie:

instanceof v jazyku Java

Vo vyššie uvedenom príklade sa modul datetime používa na zmenu navrhnutého reťazca adresujúceho konkrétny dátum a čas na hodnotu veku a času odhadovanú v milisekundách. Cyklus začína využitím schopnosti strptime(), ktorá analyzuje informačný reťazec '10-6-2021 10:33:35,72' vo svetle daného dizajnu '%d-%m-%Y %H: %M:%S,%f'. Táto konfigurácia označuje deň, mesiac, rok, hodinu, moment, sekundu a mikrosekundové časti informačného reťazca.

Nasledujúci objekt datetime, uložený v premennej dt_obj, stelesňuje analyzovaný dátum a čas. Týmto spôsobom obsah zisťuje vek a čas pomocou stratégie časovej pečiatky () pre objekt dátumu a času, pričom sa zaoberá množstvom sekúnd, ktoré prešli od veku Unixu (1. januára 1970, 00:00:00 UTC). Zvýšenie tejto hodnoty o 1 000 veriacich na milisekúnd, čo poskytuje podrobnejšie zobrazenie času.

Nakoniec obsah vytlačí určený čas veku v milisekundách pomocou artikulácie print().

Konverzia časovej pečiatky epochy na DateTime pomocou Pythonu

Môžeme použiť datetime.fromtimestamp() funkcia na prevod časovej pečiatky epochy na dátum a čas. Nižšie je uvedený príklad:

Príklad:

 # Here, we are importing the datetime module import datetime # Here, we have defined a constant value for epoch timestamp epoch_time = 33456871 # Here, we are using the datetime.fromtimestamp() function the_datetime = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are printing the values print( 'epoch timestamp:', epoch_time ) print( 'DateTime:', the_datetime ) 

Výkon:

 epoch timestamp: 33456871 DateTime: 1971-01-23 11:04:31 

Vysvetlenie:

Vo vyššie uvedenom príklade sa modul dátumu a času používa na zmenu danej vekovej časovej pečiatky, adresovanej ako 33456871 sekúnd, na rozumnejšiu a zrozumiteľnejšiu konfiguráciu. Obsah začína zahrnutím modulu dátum a čas, ktorý poskytuje prístup k rôznym funkciám práce s dátumami a časmi.

Časová pečiatka veku, ktorá naznačuje množstvo sekúnd, ktoré sa rozvinuli od veku Unixu (1. januára 1970, 00:00:00 UTC), je priradená premennej epoch_time vnútri obsahu. Schopnosť datetime.fromtimestamp() sa teda používa na zmenu tejto vekovej časovej pečiatky na objekt datetime s názvom the_datetime.

Obsah sa uzavrie vytlačením prvej vekovej časovej pečiatky a organizovaného objektu dátumu a času pomocou artikulácií print().

Pochopenie chýb súvisiacich s epochou datetime v Pythone

Pri práci s dátumom epochy v programovacom jazyku Python sa môžeme stretnúť s chybou, že dátum a čas epochy v Pythone je mimo rozsahu alebo Python neplatný argument.

Pozrime sa na príklad, aby sme pochopili problém.

Príklad:

 # Here, we are importing the datetime module import datetime # Here, we are using the timestamp() function epoch_time = datetime.datetime(1960, 6, 10, 0, 0).timestamp() # Here, we are printing the values print( epoch_time ) 

Výkon:

 Traceback (most recent call last): File 'D:Pythonepochpython.py', line 5, in epoch_time = datetime.datetime(1960, 6, 10, 0, 0).timestamp() OSError: [Errno 22] Invalid argument 

Vysvetlenie:

Vo vyššie uvedenom príklade sa modul datetime používa na zmenu konkrétneho dátumu a času, pre túto situáciu, '1960-06-10 00:00:00', na čas veku s využitím schopnosti časovej pečiatky (). Obsah začína uvedením modulu dátum a čas, ktorý umožňuje prístup k funkciám spojeným s úlohami dátumu a času.

Hlavná užitočnosť obsahu spočíva v použití schopnosti časovej pečiatky (), ktorá sa aplikuje na objekt dátumu a času adresujúci 10. jún 1960 o 12:00. Táto schopnosť funguje a vracia čas veku, pričom vyjadruje počet sekúnd, ktoré uplynuli od veku Unixu (1. januára 1970, 00:00:00 UTC) do vopred určeného dátumu a času.

Výsledok sa potom vytlačí pomocou vyhlásenia print(), čím sa vytvorí výsledok, ktorý sa môže zdať „- 306691200.0“.