# Kako pretvoriti niz v datum in čas v Pythonu

Objekti datetime omogočajo preproste časovne izračune, vključno z dodajanjem ali odštevanjem intervalov. **Pretvarjanje nizov v objekte datetime** je bistveno za natančno organiziranje, analiziranje in prikazovanje časovnih podatkov v Pythonu.

## Kako deluje pretvorba nizov v datetime v Pythonu?

Pretvorba niza Python v datetime vključuje pretvorbo besedilnega niza, ki vsebuje datum in/ali čas, v objekt datetime. Datetime je podatkovna struktura Python, zasnovana za obdelavo in prilagajanje **podatkov o datumu in času**. Pretvorba nizov v datetime je pogosto potrebna za obdelavo podatkov o datumu in času, ki se pojavljajo v obliki niza.

Podatki se pretvorijo v **format, ki se lahko uporabi** za izvajanje izračunov, primerjavo datumov ali oblikovanje časovnih informacij, med drugim. Metode za povezovanje izrazov z uporabo formata niza Python so lahko koristne tudi pri upravljanju objektov datetime.

## Kako pretvoriti nize v datetime objekte v Pythonu

Obstajajo različne funkcije in moduli, kot sta knjižnica `datetime` in metoda `strptime()`, ki jih lahko uporabite za pretvorbo nizov v datetime objekte in obratno.

### `strptime()`

Metoda `strptime()` (čas razčlenitve niza) iz knjižnice `datetime` se uporablja za pretvorbo niza v objekt datetime v Pythonu. Potrebna sta **dva argumenta**: niz, ki ga je treba razčleniti, in format datuma/časa niza.

```python
datetime.strptime(date_string, format)
```

### `datetime.datetime()`

Z metodo `strptime()` je mogoče niz pretvoriti v objekt `datetime.datetime`, pri čemer se upošteva določen format datuma/časa.

```python
from datetime import datetime
date_string = '2023-10-30 12:00:00'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_object) # Output: 2023-10-30 12:00:00
```

V tem primeru je `date_string` določeno kot `'2023-10-30 12:00:00'`, format `'%Y-%m-%d %H:%M:%S'` pa določa vrstni red in način prikazovanja datuma in časa v nizu. Metoda `strptime()` interpretira niz na podlagi tega formata in ustvari objekt `datetime.datetime`, ki se nato shrani v spremenljivki `date_object`.

Tukaj je, kaj pomeni `'%Y-%m-%d %H:%M:%S'`:

- **`%Y`**: štirimestno leto
- **`%m`**: Dvomestni mesec
- **`%d`**: Dvomestni dan
- **`%H`**: Ura (24-urni format)
- **`%M`**: Minute
- **`%S`**: Sekunde

### `datetime.time()`

Z pretvorbo nizov v objekt `datetime.time` lahko predstavite **čas brez datuma**. To lahko storite z metodo `strptime()` iz razreda `datetime` ali z delitvijo časovnega niza na ure, minute in sekunde.

```python
from datetime import datetime
time_string = '14::30::00'
time_object = datetime.strptime(time_string, '%H::%M::%S').time()
print(time_object) # Output: 14:30:00
```

`'%H:%M:%S'` pomeni format ure:minute:sekunde. Metoda `strptime()` interpretira časovni niz v skladu s tem formatom in ustvari objekt `datetime.time`.

### `datetime.date()`

Alternativno lahko niz pretvorite v objekt `datetime.date` z uporabo metode `strptime()` iz razreda `datetime` ali z ročnim razdelitvijo niza datuma na komponente leto, mesec in dan.

```python
from datetime import datetime
date_string = '2023-11-30'
date_object = datetime.strptime(date_string, '%Y-%m-%d').date()
print(date_object) # Output: 2023-11-30
```

`'%Y-%m-%d'` je format leto-mesec-dan. Metoda `strptime()` analizira niz datuma in ustvari objekt `datetime.date`.

## Kako odpraviti `strptime()` napak

Pri uporabi metode `strptime()` za pretvorbo nizov v datetime objekte v Pythonu lahko naletite na napake, zlasti če navedeni format ne ustreza formatu vhodnega niza. Tukaj je nekaj pogostih napak in načinov za njihovo odpravljanje:

- **`ValueError: time data '...' does not match format '...'`**: Ta napaka se pojavi, če vhodni niz ne ustreza določenemu formatu. Preverite, ali je bil v `strptime()` uporabljen pravilni formatni vzorec.
- **`ValueError: unconverted data remains`**: Ta napaka se prikaže, če po obdelavi niza ostanejo neinterpretirani podatki. Preverite, ali formatni vzorec zajema vse dele vhodnega niza.
- **`TypeError: strptime() argument 1 must be str, not ...`**: To se lahko zgodi, če parameter, poslan v `strptime()`, ni niz. Preverite, ali je podana vrednost niz, ki vključuje format datuma/časa.

Prepričajte se, da formatni vzorec pravilno interpretira vse dele vhodnega niza (leto, mesec, dan, čas itd.). Pomembno je tudi upoštevati morebitne razlike v ločilih, velikih črkah in drugih podrobnostih med formatnim vzorcem in vhodnim nizom.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pretvarjanje-nizov-v-datum-in-cas-v-pythonu/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pretvarjanje-nizov-v-datum-in-cas-v-pythonu/) for AI/LLM consumption.