# Kuidas teisendada string datetime'iks Pythonis

Datetime-objektid võimaldavad teha lihtsaid ajalisi arvutusi, sealhulgas intervallide liitmist ja lahutamist. **Stringide teisendamine datetime-objektideks** on oluline ajaandmete täpseks organiseerimiseks, analüüsimiseks ja kuvamiseks Pythonis.

## Kuidas toimib stringide teisendamine datetime’iks Pythonis?

Python-stringi teisendamine datetime’iks hõlmab tekstistringi, mis sisaldab kuupäeva ja/või kellaaega, teisendamist datetime-objektiks. Datetime on Python-andmestruktuur, mis on loodud **kuupäeva- ja kellaajaandmete** töötlemiseks ja kohandamiseks. Stringide teisendamine datetime’iks on sageli vajalik string-vormingus esinevate kuupäeva- ja kellaajaandmete töötlemiseks.

Andmed teisendatakse **formaati, mida saab kasutada** muu hulgas arvutuste tegemiseks, kuupäevade võrdlemiseks või ajaandmete vormindamiseks. Meetodid väljendite ühendamiseks Python string-formaadi abil võivad olla kasulikud ka datetime-objektide haldamisel.

## Kuidas teisendada stringid datetime-objektideks Pythonis

On olemas mitmesuguseid funktsioone ja mooduleid, näiteks `datetime` raamatukogu ja `strptime()` meetod, mida saab kasutada stringide teisendamiseks datetime-objektideks ja vastupidi.

### `strptime()`

`datetime` raamatukogu meetodit `strptime()` (string parse time) kasutatakse stringi teisendamiseks Python datetime objektiks. Vaja on **kahte argumenti**: parsitav string ja stringi kuupäeva/kellaaja formaat.

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

### `datetime.datetime()`

`strptime()` meetodiga saab stringi teisendada `datetime.datetime` objektiks, võttes arvesse kindlat kuupäeva/kellaaja formaati.

```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
```

Selles näites on `date_string` määratud kui `'2023-10-30 12:00:00'` ja formaat `'%Y-%m-%d %H:%M:%S'` määrab järjekorra ja kuupäeva ja kellaaja kuvamise viisi stringis. Meetod `strptime()` tõlgendab stringi selle formaadi alusel ja genereerib objekti `datetime.datetime`, mis salvestatakse seejärel muutujasse `date_object`.

Siin on `'%Y-%m-%d %H:%M:%S'` tähendus:

- **`%Y`**: Neljakohaline aasta
- **`%m`**: Kahekohaline kuu
- **`%d`**: Kahekohaline päev
- **`%H`**: Kell (24-tunnine formaat)
- **`%M`**: Minutid
- **`%S`**: Sekundid

### `datetime.time()`

Muutes stringid `datetime.time` objektiks, saate esitada **kellaaja ilma kuupäevata**. Seda saab teha, kasutades `strptime()` meetodit klassist `datetime` või jagades kellaaja stringi tundideks, minutiteks ja sekunditeks.

```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'` tähistab formaati tund:minut:sekund. Meetod `strptime()` tõlgendab aja stringi vastavalt sellele formaadile ja loob objekti `datetime.time`.

### `datetime.date()`

Alternatiivina võite teisendada stringi `datetime.date` objektiks, kasutades `strptime()` meetodit klassist `datetime` või jagades kuupäeva stringi käsitsi aasta, kuu ja päeva komponentideks.

```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'` on aasta-kuu-päeva formaat. `strptime()` meetod analüüsib kuupäeva stringi ja loob `datetime.date` objekti.

## Kuidas lahendada `strptime()` viga

Kui kasutate Pythonis stringide datetime-objektideks teisendamiseks `strptime()`, võivad tekkida vead, eriti kui määratud formaat ei vasta sisendstringi formaadile. Siin on mõned levinumad vead ja nende parandamise viisid:

- **`ValueError: time data '...' does not match format '...'`**: See viga tekib, kui sisendstring ei vasta määratud formaadile. Veenduge, et `strptime()`.
- **`ValueError: unconverted data remains`**: See viga kuvatakse, kui pärast stringi töötlemist jääb alles tõlgendamata andmeid. Veenduge, et formaadimuster hõlmab sisendstringi kõiki osi.
- **`TypeError: strptime() argument 1 must be str, not ...`**: See võib juhtuda, kui parameeter, mis on edastatud `strptime()`, ei ole string. Veenduge, et antud väärtus on string, mis sisaldab kuupäeva/kellaaja formaati.

Veenduge, et vormingumuster tõlgendab õigesti kõik sisendstringi osad (aasta, kuu, päev, kellaaeg jne). Samuti on oluline arvestada võimalike erinevustega eraldajate, suurte tähtede ja muude detailide osas vormingumustri ja sisendstringi vahel.


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/muuda-stringid-pythonis-datetimeiks/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/muuda-stringid-pythonis-datetimeiks/) for AI/LLM consumption.