logo

Python laikmets līdz datumam un laikam

Nākamajā apmācībā mēs sapratīsim laikmeta pārveidošanu par DateTime programmā Python programmēšanas valoda izmantojot dažus piemērus. Mēs izmantosim Python laikmetu, lai pārvērstu laikmetu attiecīgi datumā un laikā. Mēs apskatīsim arī šādas tēmas:

  1. Datuma un laika pārvēršana laikmeta laikā
  2. Notiek laikmeta pārvēršana DateTime virknē
  3. Laikposma pārvēršana datuma un laika milisekundēs
  4. Notiek laikmeta pārvēršana DateTime laika joslā
  5. Unix laikmeta pārveidošana par datumu laiku
  6. Datuma un laika pārvēršana laikmeta laikā milisekundēs
  7. Notiek laikmeta laikspiedola pārvēršana par datumu laiku
  8. Python laikmets DateTime gads ir ārpus diapazona

Bet pirms sākam, īsi sapratīsim Python laikmeta laiku.

Kas ir laikmeta laiks Python?

Epoha laiks, saukts arī par Unix laiku vai POSIX laiku, ir ietvars laika sekošanai dažādām sekundēm, kas pagājušas kopš Unix laikmeta, kas ir 12:00 UTC 1970. gada 1. janvārī. Šis ietvars tiek plaši izmantots ietvaru izdomāšanā un programmēšanas dialektos. , tostarp Python.

Programmā Python mēs varam strādāt ar vecumu, izmantojot laika moduli, kas sniedz iespējas kontrolēt ar laiku saistītās vērtības. Viena no būtiskām vecuma laika pārvaldības iespējām ir time.time(), kas atgriež notiekošo laiku sekundēs kopš vecuma kā dreifējoša punkta skaitli.

Laikmeta laika pārvēršana par datumu laiku, izmantojot Python

Mēs varam izmantot Python datetime.fromtimestamp() funkciju, lai laikmeta laiku pārvērstu par datumu laiku. Apskatīsim šādu piemēru, kas parāda Python laikmeta pārveidošanu par datumu laiku.

konvertēt datumu par virkni

Piemērs:

 # 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 ) 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis tiek importēts, ņemot vērā datuma un laika vērtību kontroli. Pēc tam mainīgajam epoch_time tiek piešķirta īpašā vērtība 40246871, kas attiecas uz sekundēm, kas ir paslīdētas kopš Unix laikmeta (1970. gada 1. janvāris, 00:00:00 UTC).

Satura galvenā lietderība slēpjas iespējas datetime.fromtimestamp() izmantošanā. Šī iespēja prasa zināmu ieguldījumu (epoch_time) un maina to uz saprotamāku konfigurāciju, izveidojot datetime objektu. Nākamais datetime objekts, kas adresē to pašu datumu un laiku, tiek ievietots mainīgajā date_time.

Lai izmaiņas būtu uztveramas, saturā ir iekļauti divi drukas () paziņojumi. Pirmais, print('Given age time:', epoch_time), parāda pirmā vecuma laika novērtējumu, savukārt nākamais print('Converted Datetime:', date_time) nodrošina mainīto datuma un laika vērtību.

Datuma un laika pārvēršana laikmeta laikā, izmantojot Python

Lai DateTime pārvērstu par laikmeta laiku, mēs izmantosim laika zīmogs () funkciju. Vispirms apskatīsim šādu piemēru, kas ilustrē DateTime pārveidošanu laikmeta laikā.

Piemērs:

 # 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) 

Izvade:

 Converted epoch time: 1623184200.0 

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis ir importēts, lai apstrādātu ar datumu un laiku saistītās darbības. Saturā ir redzama noteikta datuma un laika maiņa uz vecuma laiku, izmantojot laika zīmoga () iespēju.

Mijiedarbība sākas, izveidojot datuma un laika objektu, kas adresēts 2021. gada 9. jūnijam plkst. 2:00. Šis datuma un laika objekts pēc tam tiek nodots kā strīds ar timestamp() iespēju, kas atgriež to pašu vecuma laiku (sekunžu skaitu, kas ir paslīdētas kopš Unix laikmeta, 1970. gada 1. janvāris, 00:00:00 UTC). Nākamais vecuma laiks tiek ielikts mainīgajā epoch_time.

Saturs beidzas ar print() proklamāciju: print('Converted age time:', epoch_time), kas nodrošina noteiktu vecuma laiku iepriekš noteiktajam datumam un laikam. Epoha laika konvertēšana DateTime virknē, izmantojot Python Lai laikmeta laiku pārvērstu datuma un laika virknē, mums ir jāpārvērš laikmeta laiks par datetime un pēc tam jānodod iegūtais datetime mainīgais funkcijai strftime(), lai tas veiksmīgi pārvērstu datuma un laika virknē.

Piemērs:

 # 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) 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā piemērā mēs atkal esam importējuši datums Laiks bibliotēka. Pēc tam mēs izmantojām datetime.fromtimestamp() funkciju, lai pārvērstu norādīto laikmeta laiku datuma laikā un pēc tam nodotu to uz strftime() funkcija, lai datuma un laika objektu pārvērstu datuma un laika virknē. The strftime() funkciju parametri ir formāta kodi, kuros vēlējāmies pielāgot virkni.

    %UNnorāda gadu%mnorāda mēnesi%dnorāda dienu%Hnorāda stundu%Mnorāda minūti%Sapzīmē sekundes

Laikmeta laika pārvēršana DateTime milisekundēs, izmantojot Python

Mēs varam iegūt datumu laiku kopā ar milisekundēm no laikmeta laika, izmantojot metodi, ko izmantojām laikmeta laika pārvēršanai par datumu laiku. Apskatīsim šādu piemēru, kas parāda to pašu.

Piemērs:

 # 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 ) 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis ir importēts, lai strādātu ar ar datumu un laiku saistīto darbību apstrādi. Satura galvenā loma ir noteiktā vecuma laikā, kas noteikts kā 402471,238201 sekunde, pārveidoties saprotamā konfigurācijā, izmantojot gan datuma un laika objektu, gan sakārtotu virkni.

Saturs atgriežas, lai izmantotu datetime.fromtimestamp() iespēju, lai laika gaitā mainītu datuma un laika objektu. Nākamais datuma un laika objekts, kas ievietots mainīgajā date_time, parāda datuma un laika salīdzināšanas smalkumus. Beidzot saturs drukā gan pirmo vecuma laiku, gan mainīto datuma un laika objektu.

Šie print() paziņojumi rada iznākumu, kas parāda gan neapstrādātu vecuma laiku, gan organizēto datuma un laika objektu, sniedzot saprātīgu pirmā laika zīmoga un tā cilvēka vajadzībām piemēroto attēlojumu.

Laikposma laika pārvēršana DateTime laika joslā, izmantojot Python

Mēs varam izmantot laika zona() funkcija pytz pakotni, lai pārvērstu laikmeta laiku DateTime laika joslā. Apskatīsim šādu piemēru, kas parāda tā paša pārveidošanu.

Piemērs:

 # 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 ) 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis tiek izmantots kopā ar pytz moduli, lai strādātu ar datuma un laika objektiem noteiktā laika reģionā. Satura galvenais mērķis ir izveidot datuma un laika objektu un skaidri norādīt tā punktu laika joslā uz 'CST6CDT' (Fokālais standarta laiks ar saules gaismas taupīšanas laiku), pēc tam šajā brīdī izdrukājiet nākamo datumu un laiku.

Tādā veidā pytz moduļa laika joslas () iespēja tiek izmantota, lai izveidotu laika reģiona objektu, kas adresētu “CST6CDT”. Pēc tam laika reģiona objekta limit() iespēja tiek izmantota, lai noteiktu laika joslas punktu konkrētam datuma un laika objektam (2021. gada 10. jūnijs, 9:34:32).

Robeža is_dst=Nav parāda, ka gaismas taupīšanas laika (DST) dati nav viennozīmīgi norādīti, ļaujot ierobežot() iespējai noteikt piemērotu DST statusu, ņemot vērā iepriekš noteikto laiku. Beidzot saturs izdrukā nākamo datuma un laika objektu ar skaidri iestatītu laika reģionu.

Unix laikmeta laika pārveidošana par datumu laiku, izmantojot Python

Šis Unix laikmeta laika pārvēršanas process DateTime ir līdzīgs tam, ko mēs darījām iepriekš. Šis process ietver datetime.fromtimestamp() funkciju, lai pārveidotu Unix laikmeta laiku par DateTime objektu un izmanto strftime() funkciju, lai pārveidotu objektu piemērotā DateTime formātā.

Apskatīsim šādu piemēru, kas parāda to pašu.

burbuļu kārtošana java

Piemērs:

 # 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 ) 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis tiek izmantots, lai noteiktā vecuma laikā, kas norādīts kā 252384207 sekundes, pārveidotu saprotamāku organizāciju. Galvenais mērķis ir izveidot datuma un laika objektu no vecuma laika un pēc tam izveidot to kā virkni izrādei. Saturs sākas, ieviešot datuma un laika moduli. Pēc tam tiek izmantota iespēja datetime.fromtimestamp(), lai laika gaitā mainītu datuma un laika objektu.

Nākamais datetime objekts, kas ievietots mainīgajā datetime_obj, raksturo attiecīgās datuma un laika smalkumus. Pēc tam strftime() iespēja tiek izmantota, lai izveidotu datuma un laika objektu kā virkni ar noteiktu organizāciju. Šajā situācijā norādītā konfigurācija ir '%Y - %m - %d %H : %M : %S', kas attiecas uz gadu, mēnesi, dienu, stundu, brīdi un sekundi.

Beidzot saturs izdrukā gan pirmo Unix vecuma laiku, gan sakārtoto datuma un laika virkni. Šie print() paziņojumi rada ienesīgumu, parādot gan neapstrādātu vecuma laiku, gan sakārtotu datuma un laika virkni, sniedzot nepārprotamu pirmā laika zīmoga un tā cilvēka vajadzībām piemēroto attēlojumu.

Datuma un laika pārvēršana laikmeta laikā milisekundēs, izmantojot Python

Lai laikmetu DateTime pārvērstu milisekundēs, mēs varam izmantot strptime() funkciju, lai atgrieztu datuma un laika objektu no norādītās virknes un izmantotu laika zīmogs () funkcija, lai pārvērstu objektu sekundēs. Turklāt mums ir jāreizina iegūtā vērtība ar tūkstoti, lai iegūtu laikmetu DateTime milisekundēs.

Apskatīsim piemēru, kas parāda to pašu.

pārvērst str par int

Piemērs:

 # 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) 

Izvade:

 epoch time in milliseconds: 1623301415720.0 

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis tiek izmantots, lai no izstrādātas virknes, kas adresētu noteiktu datumu un laiku, mainītu uz vecuma un laika novērtējumu, kas aprēķināts milisekundēs. Cikls sākas ar strptime() iespējas izmantošanu, kas parsē informācijas virkni '10-6-2021 10:33:35,72', ņemot vērā doto dizainu '%d-%m-%Y %H: %M:%S,%f'. Šī konfigurācija norāda informācijas virknes dienu, mēnesi, gadu, stundu, brīdi, sekundi un mikrosekundes.

Nākamais datuma un laika objekts, kas ievietots mainīgajā dt_obj, iemieso parsētos datuma un laika datus. Tādā veidā saturs nosaka vecuma laiku, izmantojot timestamp() stratēģiju datetime objektam, risinot sekunžu skaitu, kas pagājušas kopš Unix laikmeta (1970. gada 1. janvāris, 00:00:00 UTC). Palielinot šo vērtību par 1000 ticīgajiem līdz milisekundēm, sniedzot detalizētāku laika attēlojumu.

Beidzot saturs izdrukā noteikto vecuma laiku milisekundēs, izmantojot artikulāciju print().

Laikposma laikspiedola pārveidošana par datumu laiku, izmantojot Python

Mēs varam izmantot datetime.fromtimestamp() funkciju, lai pārvērstu laikmeta laikspiedolu par datumu laiku. Tālāk ir parādīts piemērs:

Piemērs:

kā pārvērst virkni par veselu skaitli
 # 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 ) 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis tiek izmantots, lai noteiktā vecuma laikspiedolu, kas adresēts kā 33456871 sekunde, mainītu uz saprātīgāku un saprotamāku konfigurāciju. Saturs sākas ar datuma un laika moduļa ieviešanu, kas ļauj izmantot dažādas funkcijas darbam ar datumiem un laikiem.

Vecuma laikspiedols, kas norāda sekunžu skaitu, kas ir izvērsušās kopš Unix laikmeta (1970. gada 1. janvāris, 00:00:00 UTC), saturā tiek piešķirts mainīgajam epoch_time. Tādējādi iespēja datetime.fromtimestamp() tiek izmantota, lai mainītu šo vecuma laikspiedolu par datetime objektu ar nosaukumu the_datetime.

Saturs tiek aizvērts, izdrukājot gan pirmo vecuma laikspiedolu, gan organizēto datuma un laika objektu, izmantojot izdrukas () artikulācijas.

Izpratne par kļūdām, kas saistītas ar laikmeta datumu un laiku programmā Python

Strādājot ar epoch datetime Python programmēšanas valodā, var rasties kļūda, kurā teikts, ka Python epoch datetime gads ir ārpus diapazona vai Python arguments ir nederīgs.

Apskatīsim piemēru, lai saprastu problēmu.

Piemērs:

 # 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 ) 

Izvade:

 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 

Paskaidrojums:

Iepriekš minētajā piemērā datuma un laika modulis tiek izmantots, lai pārslēgtos uz noteiktu datumu un laiku šajā situācijā, '1960-06-10 00:00:00', uz vecuma laiku, izmantojot timestamp() iespēju. Saturs sākas ar datuma un laika moduļa ieviešanu, kas ļauj piekļūt funkcijām, kas saistītas ar datuma un laika uzdevumiem.

Satura galvenā lietderība slēpjas laika zīmoga() iespējas izmantošanā, kas tiek lietota objektam datetime un kura adrese ir 1960. gada 10. jūnijs plkst. 12:00. Šī iespēja darbojas un atgriež vecuma laiku, pievēršoties sekunžu skaitam, kas pagājis kopš Unix laikmeta (1970. gada 1. janvāris, 00:00:00 UTC) līdz iepriekš noteiktajam datumam un laikam.

Pēc tam rezultāts tiek izdrukāts, izmantojot print() proklamāciju, radot rezultātu, kas varētu šķist '- 306691200.0'.