Python Datetime: kompleksowy przewodnik z przykładami

Python Datetime: kompleksowy przewodnik z przykładami

Podczas pracy z projektami danych w Pythonie najprawdopodobniej będziesz używać funkcji datetime. Niemal każdy zestaw danych, z którym będziesz pracować, będzie zawierał kolumnę daty/godziny, którą będziesz chciał manipulować zgodnie ze swoimi potrzebami i wymaganiami projektu.

Na szczęście Python ma własny wbudowany moduł o nazwie datetime , który umożliwia reprezentowanie, manipulowanie i wykonywanie operacji na instancjach typu datetime, takich jak daty, godziny i ich kombinacje. Opanowanie modułu datetime w języku Python pomoże Ci przeprowadzać bardziej solidne analizy szeregów czasowych w Twoich projektach.

Moduł datetime Pythona to narzędzie do obsługi dat, godzin i przedziałów czasowych. Umożliwia wykonywanie różnych operacji na datach i godzinach w prosty sposób.

Python Datetime: kompleksowy przewodnik z przykładami

Programowanie streszczenie — kod źródłowy i kod binarny na wyświetlaczu programisty. Czarny motyw z kolorową składnią.

Korzystając z modułu datetime w Pythonie , możesz łatwo pracować z wartościami daty i godziny, zarządzać strefami czasowymi, wykonywać obliczenia, a nawet obsługiwać formatowanie i analizowanie różnych reprezentacji. Ta funkcjonalność sprawia, że ​​moduł datetime jest niezbędnym narzędziem w wielu aplikacjach, od przetwarzania danych po planowanie wydarzeń i nie tylko.

Zanim zaczniesz korzystać z modułu datetime Pythona w swoich projektach, bardzo ważne jest zrozumienie jego podstawowych klas. W poniższej sekcji przyjrzymy się pięciu głównym klasom modułu DateTime języka Python. Wejdźmy w to!

Spis treści

Jakie są 5 głównych klas modułu Datetime Pythona?

Moduł Python Datetime jest częścią standardowej biblioteki, która udostępnia klasy do manipulowania datami, godzinami, strefami czasowymi i czasem trwania oraz do pracy z nimi.

Moduł składa się z pięciu głównych klas:

  1. Data i godzina

  2. Data,

  3. Czas,

  4. delta czasu

  5. Strefa czasowa.

    Przyjrzymy się każdej klasie, a następnie przedstawimy przykładowe przypadki użycia, aby pomóc Ci lepiej zrozumieć tę koncepcję.

Jak korzystać z klasy Datetime

Klasa Datetime języka Python jest najczęściej używaną klasą w module. Reprezentuje pojedynczy punkt w czasie z atrybutami takimi jak rok, miesiąc, dzień, godzina, minuta, sekunda i mikrosekunda.

Niektóre typowe operacje z klasą Python Datetime obejmują:

  • datagodzina.datagodzina.teraz()

Ta funkcja pozwala uzyskać aktualną datę i godzinę. Poniżej znajduje się przykład pobierania bieżącej daty i godziny:

import datetime

# Get the current date and time
now = datetime.datetime.now()

print("Current date and time: ", now)

Spowoduje to wyświetlenie bieżącej daty i godziny w momencie wykonania w formacie RRRR-MM-DD HH:MM:SS.ssssss.

Python Datetime: kompleksowy przewodnik z przykładami

  • datagodzina.datagodzina

Ta funkcja umożliwia utworzenie niestandardowego obiektu daty i godziny. Poniżej znajduje się przykład użycia datetime.datetime w kodzie:

from datetime import date

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

print("Custom date and time: ", custom_date)

Oprócz powyższych funkcji klasa Datetime udostępnia również metody do pracy z datą i czasem, takie jak:

Python Datetime: kompleksowy przewodnik z przykładami

  • strftime() :

Metoda pozwala sformatować obiekty daty i czasu jako ciąg znaków. Poniżej znajduje się przykład metody strftime():

import datetime

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")

print("Formatted date and time: ", formatted_date)

Ten kod przekonwertuje obiekt datetime na ciąg znaków:

Python Datetime: kompleksowy przewodnik z przykładami

  • strptime() :

Ta funkcja w klasie datetime umożliwia przeanalizowanie łańcucha reprezentującego obiekty daty i godziny w pojedynczy obiekt Datetime. Poniżej znajduje się przykład analizowania daty zapisanej jako ciąg znaków w obiekcie Datetime:

import datetime

# String representing a date and time
date_string = "May 22, 2023, 17:40"

# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")

print("Parsed date and time: ", parsed_date)

Spowoduje to przekształcenie ciągu znaków w obiekt DateTime.

Python Datetime: kompleksowy przewodnik z przykładami

Jak korzystać z klasy Date

Klasa Date pozwala zajmować się wyłącznie obiektami daty (rok, miesiąc i dzień). Możesz tworzyć obiekty daty z klasą daty.

Niektóre typowe operacje z klasą Date obejmują:

  • datetime.date.day()

Ta funkcja w klasie date pozwala uzyskać aktualną datę. Poniżej znajduje się przykład pobierania bieżącej daty z klasą daty:

import datetime

# Get the current date
today = datetime.date.today()

print("Today's date: ", today)

Ten kod Pythona wyświetli bieżącą datę w momencie wykonania w formacie RRRR-MM-DD.

Python Datetime: kompleksowy przewodnik z przykładami

W momencie pisania tego artykułu aktualna data to 2023-05-22.

  • datetime.date()

Ta funkcja w klasie date umożliwia tworzenie obiektów daty. Przykład ilustruje tworzenie niestandardowego obiektu daty za pomocą funkcji datetime.date():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

print("Custom date: ", custom_date)

W funkcji datetime.date() jako argumenty podajesz rok, miesiąc i dzień.

Ten skrypt wyświetli 2023-05-22, ponieważ utworzyłeś niestandardowy obiekt daty dla daty 22 maja 2023 r.

Python Datetime: kompleksowy przewodnik z przykładami

Klasa Date udostępnia również przydatne metody, takie jak:

  • dzień powszedni()

Ta metoda w klasie date zwraca dzień tygodnia (0 dla poniedziałku, 1 dla wtorku itd.). Poniższy przykład ilustruje metodę weekday():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Get the day of the week
day_of_week = custom_date.weekday()

print("Day of the week: ", day_of_week)

W tym przykładzie custom_date.weekday() zwróci 0, ponieważ 22 maja 2023 r. przypada w poniedziałek.

Python Datetime: kompleksowy przewodnik z przykładami

  • strftime()

Ta metoda w klasie date umożliwia sformatowanie obiektu daty jako ciągu znaków . Poniższy przykład demonstruje funkcję strftime():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")

print("Formatted date: ", formatted_date)

Spowoduje to wyświetlenie daty w formacie „Dzień miesiąca, rok”.

Python Datetime: kompleksowy przewodnik z przykładami

  • strptime()

Ta metoda umożliwia przeanalizowanie ciągu reprezentującego datę w obiekcie Date. Poniżej znajduje się przykład konwersji daty typu string na obiekt Date:

import datetime

# String representing a date
date_string = "May 22, 2023"

# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()

print("Parsed date: ", parsed_date)

Spowoduje to wyświetlenie obiektu daty utworzonego z ciągu daty.

Python Datetime: kompleksowy przewodnik z przykładami

Jak korzystać z klasy czasu

The Time class allows you to work with time instances (hour, minute, second, microsecond). With the time class, you can create a custom time object with datetime.time().

The following example demonstrates creating a custom time object:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

print("Custom time: ", custom_time)

In the datetime.time() function, you provide the hour and minute as arguments.

This script will output 17:40:00, as specified in the Python code.

Python Datetime: kompleksowy przewodnik z przykładami

The Time class provides useful methods, such as:

  • strftime()

This method allows you to format the time object as a string. Below is an example of this function:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")

print("Formatted time: ", formatted_time)

This will output the local time formatted as “Hour:Minute”.

Python Datetime: kompleksowy przewodnik z przykładami

  • strptime()

This function allows you to parse a string representing time into a Time object. The following example demonstrates this function:

from datetime import time

# String representing a time
time_string = "17:40"

# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()

print("Parsed time: ", parsed_time)

This will output the time objects created from the time string.

Python Datetime: kompleksowy przewodnik z przykładami

How to Use The Timedelta Class

The Timedelta class allows you to represent represents a duration or difference between two dates or times.

With Timedelta class, you can perform the following operations:

  • Calculate the difference between two dates or times

An example of calculating the difference between two dates is given below:

 import datetime

# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)

# Calculate the difference between the two dates
date_difference = date2 - date1

print("Difference between the dates is: ", date_difference.days, "days")

In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.

Python Datetime: kompleksowy przewodnik z przykładami

  • Add or subtract a duration to a date or time

An example of adding a duration to a date is given below:

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Create a duration of 10 days
duration = datetime.timedelta(days=10)

# Add the duration to the date
new_date = custom_date + duration

print("New date: ", new_date)

In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.

Python Datetime: kompleksowy przewodnik z przykładami

How to Use the Timezone Class

The Timezone class allows you to handle time zones and daylight saving time adjustments.

You can perform the following operation with timezone class:

  • Create a timezone object

To create a timezone object, you can use the datetime.timezone() function. The following example demonstrates creating a timezone object:

import datetime

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

print("Timezone object: ", two_hours_ahead)

In this example, two_hours_ahead is a timezone object representing a timezone that is 2 hours ahead of Coordinated Universal Time (UTC).

This script will output a timezone object like .

Python Datetime: kompleksowy przewodnik z przykładami

  • Object with a specific timezone

To achieve this, you can use the .replace(tzinfo=tz) function. The following example demonstrates this function:

import datetime

# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)

print("Aware datetime object: ", aware_datetime)

In this example, naive_datetime is a datetime object that does not have any timezone information. The two_hours_ahead variable is a timezone object representing a timezone that is 2 hours ahead of UTC.

The replace(tzinfo=two_hours_ahead) method is used to create a new datetime object with the same date and time as naive_datetime, but with tzinfo set to two_hours_ahead.

Python Datetime: kompleksowy przewodnik z przykładami

The Timezone helps you maintain accurate and consistent time values when working with data that spans multiple time zones.

You have gone through some of the most important functions in the datetime module in Python. In the next section we will implement some of the above functions to a case studywhich will give you a practical look into the implementation of these datetime module in your projects.

Implementing the DateTime Module Functions to a Case Study

Let’s consider a case study where we are given a dataset of different events that happened around the world. The dataset has corresponding dates and times in a string format.

Naszym zadaniem jest przekształcenie tych dat i godzin w obiekty DateTime i wykonywanie na nich operacji w razie potrzeby.

Załóżmy, że mamy następujący zestaw danych:

Python Datetime: kompleksowy przewodnik z przykładami

Jeśli sprawdzimy typy danych zmiennej, zobaczymy, że data i godzina są przechowywane jako ciąg znaków. Dlatego przed przystąpieniem do jakiejkolwiek analizy musimy przekonwertować kolumny daty i czasu do odpowiedniego formatu.

W tym celu możemy użyć następującego kodu:

import datetime

# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))

print(df)

W tym bloku kodu najpierw tworzymy nową kolumnę „DateTime” w DataFrame, łącząc kolumny „Date” i „Time”. Następnie stosujemy funkcję datetime.strptime do każdej wartości w tej nowej kolumnie, aby przekonwertować ciągi daty i godziny na obiekty typu datetime. Na koniec drukujemy DataFrame, aby zobaczyć wynik.

Python Datetime: kompleksowy przewodnik z przykładami

Następną rzeczą, którą chcielibyśmy zrobić, jest obliczenie różnicy między dwoma zdarzeniami. W tym celu możemy użyć następującego kodu:

duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)

Ten skrypt Pythona obliczy czas trwania między „Event1” a „Event2”.

Python Datetime: kompleksowy przewodnik z przykładami

Na koniec przekonwertujmy obiekty datetime na inną strefę czasową. Kiedy można to osiągnąć za pomocą funkcji strefy czasowej w module datetime.

# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))

# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))

print(df)

W tym kodzie tworzymy obiekt strefy czasowej dla UTC. Następnie tworzymy nową kolumnę w naszej ramce DataFrame o nazwie „DateTime_UTC”, stosując funkcję lambda do naszej kolumny „DateTime”. Spowoduje to zastąpienie informacji o strefie czasowej każdego obiektu daty i godziny czasem UTC.

Python Datetime: kompleksowy przewodnik z przykładami

Dzięki powyższemu przykładowemu studium przypadku zobaczysz, jak różne funkcje zapewniane przez moduł DateTime współpracują ze sobą w celu manipulowania datami i godzinami w odpowiednim formacie.

Teraz, gdy znasz już niektóre funkcje modułu datetime, przyjrzyjmy się kilku dodatkowym funkcjom, których będziesz chciał używać, podejmując się bardziej złożonych projektów.

Oprócz funkcji wymienionych powyżej istnieje wiele innych przydatnych funkcji, z których można korzystać w zależności od problemu. Programiści Pythona często otwierają stronę dokumentacji , aby szukać funkcji, które mogą zaspokoić Twoje potrzeby. I radzimy zrobić to samo!

Dodatkowe funkcje daty i godziny

W tej sekcji omówimy dodatkowe funkcje w module datetime Pythona . Obejmuje to pobieranie nazw dni tygodnia, miesięcy i dni tygodnia wraz z funkcją ctime() .

Jak odzyskać dni tygodnia z daty

Moduł datetime zawiera funkcję weekday() , która zwraca dzień tygodnia jako liczbę całkowitą (gdzie poniedziałek to 0, a niedziela to 6).

Aby skorzystać z tej funkcji, możesz wywołać ją na obiekcie typu date lub datetime.

import datetime

today = datetime.date.today()
weekday_number = today.weekday()

print(weekday_number)

Dane wyjściowe powyższego kodu przedstawiono na poniższym obrazku:

Python Datetime: kompleksowy przewodnik z przykładami

Bieżąca data lokalna to 23.05.2023, a dniem tygodnia jest poniedziałek.

Jak odzyskać nazwy miesięcy i dni tygodnia z daty

datetime pozwala również na pobranie nazwy miesiąca i dnia tygodnia.

Możesz użyć funkcji strftime() , która formatuje datę lub obiekt datetime jako ciąg znaków.

Poniżej przedstawiono przykład użycia funkcji strftime() w celu uzyskania nazwy miesiąca i dnia tygodnia:

import datetime

today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')

print(weekday_name)
print(month_name)

Ten kod wydrukuje nazwę dnia tygodnia i nazwę miesiąca na wyjściu.

Python Datetime: kompleksowy przewodnik z przykładami

Jak korzystać z funkcji Ctime

Funkcja ctime() w module datetime zwraca ciąg znaków reprezentujący datę lub obiekt datetime, sformatowany jako „Day Mon DD HH:MM:SS RRRR”.

ctime to metoda dla obiektu datetime , a nie samodzielna funkcja.

Poniżej znajduje się przykład użycia funkcji ctime w kodzie:

import datetime

now = datetime.datetime.now()
formatted_date = now.ctime()

print(formatted_date)

Powyższy kod zwróci łańcuchową reprezentację obiektu daty.

Python Datetime: kompleksowy przewodnik z przykładami

Aby dowiedzieć się więcej o pracy z danymi szeregów czasowych, obejrzyj następujący film:

Końcowe przemyślenia

Dla programisty Pythona ważne jest opanowanie modułu datetime. Jest to zestaw narzędzi, który umożliwia radzenie sobie z datami, godzinami i przedziałami czasowymi. Są to elementy, które często napotykasz w rzeczywistych danych.

Ten moduł będzie potrzebny do konwertowania ciągów znaków na obiekty typu data/godzina, obsługi konwersji stref czasowych i wykonywania operacji na datach i godzinach.

Ucząc się obsługi modułu datetime, będziesz lepiej przygotowany do obsługi tych zadań we własnych projektach!


Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.

Pomysły na materializację pamięci podręcznych danych w DAX Studio

Pomysły na materializację pamięci podręcznych danych w DAX Studio

W tym samouczku omówiono idee materializacji pamięci podręcznych danych oraz ich wpływ na wydajność języka DAX w dostarczaniu wyników.

Raportowanie biznesowe przy użyciu usługi LuckyTemplates

Raportowanie biznesowe przy użyciu usługi LuckyTemplates

Jeśli do tej pory nadal korzystasz z programu Excel, jest to najlepszy moment, aby zacząć korzystać z usługi LuckyTemplates na potrzeby raportowania biznesowego.

Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć

Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć

Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć