Python DataGodzina, godzinaDelta, Strftime(Format) z przykładami

⚡ Inteligentne podsumowanie

Python Moduł datetime, wraz z klasami date, time i timedelta, obsługuje daty, godziny i interwały jako obiekty. Moduł datetime formatuje dane wyjściowe za pomocą funkcji strftime(), analizuje ciągi znaków i oblicza przyszłe lub przeszłe momenty za pomocą arytmetyki timedelta.

  • 🔘 Pięć klas: Moduł datetime grupuje klasy daty, godziny, datetime, timedelta i tzinfo do pracy z datą i godziną.
  • ️ Wartości bieżące: datetime.now() i date.today() zwracają bieżącą datę i godzinę, łącznie z numerem dnia tygodnia.
  • ✅ Formatowanie: Funkcja strftime() zamienia datę i godzinę na czytelny tekst przy użyciu kodów sterujących, takich jak %Y, %A i %H.
  • 🧪 Delta czasu: Obiekt delty czasu mierzy czas trwania i przewiduje przyszłe lub przeszłe daty poprzez dodawanie i podpisywanie.traccja.
  • 🛠️. Dyrektywy: Te same kody sterujące sterują funkcją strftime() w celu uzyskania danych wyjściowych i funkcją strptime() w celu odczytania ciągu znaków z powrotem do obiektu datetime.
  • 🤖 Przepływy pracy AI: Procesy uczenia maszynowego pozwalają na wyprowadzenie cech daty i czasu, takich jak dzień tygodnia i godzina, na potrzeby modeli szeregów czasowych.

Python DateTime

In Python, data, godzina i data-godzina Klasy udostępniają szereg funkcji do obsługi dat, godzin i przedziałów czasu. Data i data/godzina w Python Są obiektami, więc manipulując nimi, tak naprawdę manipulujesz obiektami, a nie ciągami znaków czy znacznikami czasu. Za każdym razem, gdy manipulujesz datami lub czasem, musisz zaimportować moduł datetime.

Klasy datetime w Python Są podzielone na 5 głównych klas.

  • date – Manipuluj tylko datą (miesiąc, dzień, rok)
  • time – czas niezależny od dnia (godzina, minuta, sekunda, mikrosekunda)
  • datetime – Kombinacja czasu i daty (miesiąc, dzień, rok, godzina, sekunda, mikrosekunda)
  • timedelta — przedział czasu używany do manipulowania datami
  • tzinfo— mięśnie brzuchatracklasa t do radzenia sobie ze strefami czasowymi

Jak korzystać z klasy Date i DateTime

Krok 1) Przed uruchomieniem kodu formatu datetime w Python, ważne jest, aby zaimportować plik Python moduły daty i godziny, jak pokazano na zrzucie ekranu poniżej.

Użyj klasy Date i DateTime

Te instrukcje importu są wstępnie zdefiniowanymi elementami funkcjonalności w pliku Python biblioteka umożliwiająca manipulowanie datami i godzinami bez konieczności pisania kodu.

Przed wykonaniem należy wziąć pod uwagę następujące kwestie: Python kod formatu daty i godziny

from datetime import date

Ta linia mówi Python interpreter, aby zaimportować klasę daty z modułu datetime w PythonNie piszemy kodu dla tej funkcjonalności daty, lecz po prostu importujemy ją do naszego użytku.

Drukuj datę za pomocą date.today()

Funkcja date.today() ma kilka powiązanych właściwości. Możemy wydrukować poszczególne dni, miesiące, lata i wiele innych.

Zobaczmy przykład

Drukuj datę za pomocą date.today()

Dzisiejszy numer dnia tygodnia

Funkcja date.today() podaje również numer dnia tygodnia. Oto tabela dni tygodnia, która zaczyna się od Monday jako 0 i niedzielę jako 6.

Dzień Numer dnia tygodnia
Monday 0
Wtorek 1
Wednesday 2
Czwartek 3
Piątek 4
Sobota 5
Niedziela 6

Numer dnia tygodnia jest przydatny w przypadku tablic, których indeks zależy od dnia tygodnia.

Drukuj datę za pomocą date.today()

Krok 2) Następnie tworzymy instancję obiektu daty.

Użyj klasy Date i DateTime

Krok 3) Następnie drukujemy datę i uruchamiamy kod.

Użyj klasy Date i DateTime

Wynik jest zgodny z oczekiwaniami.

Python Bieżąca data i godzina: teraz() dzisiaj()

Krok 1) Podobnie jak obiekty daty, możemy również użyć „OBIEKT DATETIME” in Python. Python Obiekty daty i godziny podają datę wraz z czasem godziny, minuty, sekundy i milisekundy.

Python Bieżąca data i godzina

Kiedy wykonujemy kod dla datetime, daje wynik z aktualną datą i godziną.

Krok 2) Za pomocą „DATETIME OBJECT” można również wywołać klasę czasu. Załóżmy, że chcemy wydrukować tylko bieżącą godzinę bez daty.

t = datetime.time(datetime.now())
  • Zaimportowaliśmy klasę time. Przypiszemy mu aktualną wartość czasu za pomocą funkcji datetime.now()
  • Wartość aktualnego czasu przypisujemy zmiennej t.

A to da mi tylko czas. Uruchommy więc ten program.

Python Bieżąca data i godzina

No dobrze, więc widzicie, że mam tu datę i godzinę. A w następnym wierszu mam tylko samą godzinę.

Krok 3) Zastosujemy nasz indeks dni tygodnia do listy tablicowej dni tygodnia, aby dowiedzieć się, który dzień przypada dzisiaj.

  • Operatorowi dni tygodnia (wd) przypisywany jest numer od 0 do 6 w zależności od bieżącego dnia tygodnia. Tutaj zadeklarowaliśmy tablicę listy dni (pon., wt., śr.…niedz.).
  • Użyj tej wartości indeksu, aby dowiedzieć się, który jest dzień. W naszym przypadku jest to numer 2 i reprezentuje środę, więc na wyjściu zostanie wydrukowane „Która jest środa”.

Python Bieżąca data i godzina

Oto kompletny kod umożliwiający uzyskanie aktualnej daty i godziny przy użyciu funkcji datetime now

from datetime import date
from datetime import time
from datetime import datetime
def main():
    ##DATETIME OBJECTS
    #Get today's date from datetime class
    today=datetime.now()
    #print (today)
    # Get the current time
    #t = datetime.time(datetime.now())
    #print "The current time is", t
    #weekday returns 0 (monday) through 6 (sunday)
    wd=date.weekday(today)
    #Days start at 0 for monday
    days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
    print("Today is day number %d" % wd)
    print("which is a " + days[wd])

if __name__== "__main__":
    main()

Jak sformatować datę i godzinę za pomocą Strftime()

Do tej pory nauczyliśmy się, jak używać daty i godziny oraz daty obiekt w Python. Pójdziemy o krok dalej i dowiemy się, jak używać funkcji formatowania do formatowania godziny i daty.

Krok 1) Najpierw zobaczymy prosty krok, jak sformatować rok. Lepiej zrozumieć na przykładzie.

Formatuj wyjściową datę i godzinę za pomocą Strftime()

  • Użyliśmy „funkcja strftime” do formatowania.
  • Ta funkcja wykorzystuje różne kod kontrolny aby dać wynik.
  • Każdy kod sterujący przypomina inne parametry, takie jak rok, miesiąc, dzień tygodnia i data [(%y/%Y – rok), (%a/%A- dzień tygodnia), (%b/%B- miesiąc), (%d – dzień miesiąca)] .
  • W naszym przypadku tak („% Y”) który przypomina rok, wypisuje cały rok ze stuleciem (np. 2018).

Krok 2) Teraz, jeśli zastąpisz („%Y”) małymi literami, tj. („%y) i wykonasz kod, na wyjściu wyświetli się tylko (18), a nie (2018). Wiek roku nie będzie wyświetlany, jak pokazano na zrzucie ekranu poniżej

Formatuj wyjściową datę i godzinę za pomocą Strftime()

Krok 3) Funkcja strf może deklarować datę, dzień, miesiąc i rok oddzielnie. Dodatkowo, wprowadzając drobne zmiany w kodzie sterującym funkcji strftime, można sformatować styl tekstu.

Formatuj wyjściową datę i godzinę za pomocą Strftime()

W funkcji strftime, jeśli zastąpisz (%a) wielką literą A, tj. (%A), wynik zostanie wydrukowany jako „Piątek” zamiast skrótu „Pt”.

Formatuj wyjściową datę i godzinę za pomocą Strftime()

Krok 4) Za pomocą funkcji „Strftime” możemy również pobrać lokalny czas systemowy, datę lub jedno i drugie.

  1. %C – wskazuje lokalną datę i godzinę
  2. %x- wskazuje datę lokalną
  3. %X- wskazuje czas lokalny

Formatuj wyjściową datę i godzinę za pomocą Strftime()

Na wyjściu widać wynik zgodnie z oczekiwaniami

Krok 5) Funkcja strftime umożliwia wywołanie czasu w dowolnym formacie 24-godzinnym lub 12-godzinnym.

Formatuj wyjściową datę i godzinę za pomocą Strftime()

Po prostu definiując kod sterujący, taki jak %I/H dla godziny, % M dla minuty, %S dla sekundy, można wywołać czas w różnych formatach

12 godzin zadeklarowano czas [drukuj teraz.strftime(“%I:%M:%S %p) ]

24 godzin zadeklarowano czas [drukuj teraz.strftime(„%H:%M”)]

Oto kompletny kod do konwersji datetime na obiekt String.

#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print(now.strftime("%c"))
      print(now.strftime("%x"))
      print(now.strftime("%X"))
##### Time Formatting ####
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM
      print(now.strftime("%H:%M")) # 24-Hour:Minute

if __name__== "__main__":
    main()

Czym jest Timedelta? Python?

Delta czasu w Python Jest obiektem reprezentującym czas trwania. Służy głównie do obliczania czasu trwania między dwiema datami i godzinami. Służy również do pobierania obiektu z pewną różnicą daty i godziny. Obiekt timedelta obsługuje operacje matematyczne, takie jak dodawanie, podrzędne i inne.traccje, mnożenie, dzielenie itp.

Jak korzystać z obiektów Timedelta

Z Python Obiekty timedelta umożliwiają szacowanie czasu zarówno przyszłego, jak i przeszłego. Innymi słowy, jest to przedział czasowy, w którym można przewidzieć dowolny specjalny dzień, datę lub godzinę.

Pamiętaj, że ta funkcja nie służy do drukowania godziny ani daty, ale do OBLICZANIA przyszłości lub przeszłości. Zobaczmy Python przykład timedelta pozwalający lepiej to zrozumieć.

Krok 1) Aby uruchomić obiekty Timedelta, musisz najpierw zadeklarować polecenie importu, a następnie wykonać kod

  1. Napisz instrukcję importu dla timedelta
  2. Teraz napisz kod, aby wydrukować obiekt z delty czasu, jak pokazano na zrzucie ekranu
  3. Uruchom kod. Timedelta reprezentuje okres 365 dni, 8 godzin i 15 minut i drukuje to samo

Obiekty Timedelta

Mylące? Następny krok pomoże-

Krok 2) Uzyskajmy dzisiejszą datę i godzinę, aby sprawdzić, czy nasza instrukcja importu działa dobrze. Kiedy kod jest wykonywany, wypisuje dzisiejszą datę, co oznacza, że ​​nasza instrukcja importu działa dobrze

Obiekty Timedelta

Krok 3) Zobaczymy, jak możemy pobrać datę za rok od teraz za pomocą obiektów delta. Gdy uruchomimy kod, daje on oczekiwany wynik.

Obiekty Timedelta

Krok 4) Inny przykład wykorzystania delty czasu do obliczenia przyszłej daty na podstawie bieżącej daty i godziny

Obiekty Timedelta

Krok 5) Przyjrzyjmy się bardziej złożonemu przykładowi. Chciałbym ustalić, ile dni minęło od Nowego Roku. Oto, jak będziemy postępować

  • Używając Today= date.today() otrzymamy dzisiejszą datę
  • Wiemy, że Nowy Rok przypada zawsze 1 stycznia, ale rok może być inny. Używając nyd= date(dzisiaj.rok,1,1) przechowujemy nowy rok w zmiennej nyd
  • if nyd < today: sprawdza, czy bieżąca data jest późniejsza niż nowy rok. Jeśli tak, uruchamia pętlę while.
  • ((today-nyd).days) podaje różnicę między bieżącą datą a nowym rokiem w DNIach

Obiekty Timedelta

Wynik pokazuje, że „Nowy Rok minął już 11 dni temu”.

Oto kompletny działający kod

#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print (timedelta(days=365, hours=8, minutes=15))
# print today's date
print ("today is: " + str(datetime.now()))
# print today's date one year from now
print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365)))
# create a timedelta that uses more than one argument
# print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print ("New Year day is already went by %d days ago" % ((today - nyd).days))

Python 2 Przykład

Poniższe przykłady pokazują te same operacje daty i czasu zapisane dla Python 2, gdzie print jest poleceniem, a nie funkcją. Używaj tych wersji tylko w przypadku utrzymywania starszej wersji. Python 2 kod.

from datetime import date
from datetime import time
from datetime import datetime
def main():
 	##DATETIME OBJECTS
    #Get today's date from datetime class
	today=datetime.now()
	#print today
	# Get the current time
	#t = datetime.time(datetime.now())
	#print "The current time is", t
	#weekday returns 0 (monday) through 6 (sunday)
        wd = date.weekday(today)
	#Days start at 0 for monday
        days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
        print "Today is day number %d" % wd
        print "which is a " + days[wd]

if __name__== "__main__":
    main()
#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print now.strftime("%c")
      print now.strftime("%x")
      print now.strftime("%X")
##### Time Formatting ####   
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM
      print now.strftime("%H:%M") # 24-Hour:Minute   

if __name__== "__main__":
    main()
#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print timedelta(days=365, hours=8, minutes=15)
# print today's date
print "today is: " + str(datetime.now())
# print today's date one year from now
print "one year from now it will be:" + str(datetime.now() + timedelta(days=365))
# create a timedelta that uses more than one argument
# print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print "New Year day is already went by %d days ago" % ((today - nyd).days)

FAQ

Użyj datetime.strptime(text, format), aby przekształcić ciąg znaków w obiekt datetime. Przekaż te same dyrektywy, których używa strftime(), dzięki czemu „2018-06-29” zostanie odczytane jako „%Y-%m-%d”. Jako odwrotność strftime(), strptime() przekształca tekst czytelny dla człowieka z powrotem w obiekt datetime, który można obliczyć.

Data i godzina bez tzinfo są naiwne; dołączenie strefy czasowej sprawia, że ​​jest ona świadoma. Użyj wbudowanego modułu zoneinfo (Python 3.9+) lub pakiet pytz do lokalizacji dat i godzin, a następnie konwersji między strefami, dzięki czemu obliczenia pozostają poprawne we wszystkich regionach.

Wywołaj metodę timestamp() dla obiektu datetime, aby uzyskać liczbę sekund od epoki Unix jako liczbę zmiennoprzecinkową, na przykład datetime.now().timestamp(). W drugą stronę, datetime.fromtimestamp(value) odbudowuje obiekt datetime ze znacznika czasu Unix.

Obie zwracają aktualną lokalną datę i godzinę, ale datetime.now() akceptuje opcjonalny argument strefy czasowej, podczas gdy datetime.today() nie. W przypadku kodu uwzględniającego strefę czasową, preferuj datetime.now(tz), aby wynik zawierał poprawne przesunięcie, zamiast pozostawać naiwnym.

Tak. Moduł datetime jest dostarczany z Python, więc instalacja pip nie jest wymagana. Zaimportuj go poleceniem „from datetime import datetime, date, time, timedelta”, a klasy date, time, datetime, timedelta i tzinfo staną się natychmiast dostępne.

Wywołaj metodę isoformat(), aby uzyskać standardowy ciąg ISO 8601, taki jak „2018-06-29T08:15:27”. W przypadku obiektu daty zwraca ona „RRRR-MM-DD”. Metoda isoformat() nie wymaga żadnych kodów sterujących, w przeciwieństwie do strftime(), która buduje niestandardowe układy z dyrektyw.

Procesy uczenia maszynowego przekształcają surowe znaczniki czasu w takie cechy, jak dzień tygodnia, godzina, miesiąc i czas, który upłynął, za pomocą funkcji datetime i timedelta. Te opracowane funkcje daty pomagają modelom szeregów czasowych i systemom prognozowania AI wykrywać wzorce sezonowe i cykliczne.

Tak. GitHub Copilot i agenci AI generują ciągi formatujące strftime(), arytmetykę timedelta i konwersje stref czasowych na podstawie krótkiego komentarza, a także potrafią objaśniać zagadkowe dyrektywy. Zawsze uruchamiaj sugerowany kod, ponieważ obsługa dat i przesunięcia są łatwe do pomylenia.

Podsumuj ten post następująco: