0Pricing
Go Academy · Lekcja

Formatowanie i analizowanie

Używaj układu referencyjnego

Formatowanie i analizowanie to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.

Układ referencyjny

Go nie używa kodów takich jak %Y. Zamiast tego korzysta z jednego czasu referencyjnego jako szablonu:

Mon Jan 2 15:04:05 MST 2006

Aby opisać żądany format, należy zapisać datę dokładnie w tym układzie.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 9, 5, 0, 0, time.UTC)
    fmt.Println(t.Format("2006-01-02"))
}

Skąd biorą się te liczby?

Wartości referencyjne są uporządkowane rosnąco: 1 = miesiąc, 2 = dzień, 3 = godzina, 4 = minuta, 5 = sekunda, 6 = rok, 7 = strefa czasowa. Zatem 1 2 3 4 5 6 oznacza 2 stycznia, godzinę 03:04:05 i rok 2006.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 14, 5, 9, 0, time.UTC)
    fmt.Println(t.Format("15:04:05"))
}

Formatowanie daty

Elementy układu można dowolnie łączyć z dosłownym tekstem i separatorami, aby utworzyć dowolny ciąg daty.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t.Format("02/01/2006"))
}

Nazwane elementy

Należy użyć Jan lub January dla nazw miesięcy oraz Mon lub Monday dla nazw dni tygodnia.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t.Format("Monday, January 2, 2006"))
}

Zegar 12-godzinny i AM/PM

Dla zegara 12-godzinnego należy użyć 3, a jako oznaczenia pory dnia — PM.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 14, 30, 0, 0, time.UTC)
    fmt.Println(t.Format("3:04 PM"))
}

Wbudowane stałe układów

Pakiet udostępnia gotowe układy, takie jak time.RFC3339 i time.Kitchen, więc nie trzeba zapamiętywać cyfr.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t.Format(time.RFC3339))
}

Parsowanie ciągu

time.Parse(layout, value) przekształca tekst w wartość typu time.Time. Układ opisuje strukturę danych wejściowych za pomocą tego samego czasu referencyjnego.

package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.Parse("2006-01-02", "2026-05-30")
    fmt.Println(t.Year(), t.Month())
}

Układ musi pasować do danych wejściowych

Jeśli układ nie pasuje do struktury danych wejściowych, Parse zwraca błąd. Należy go zawsze sprawdzać.

package main

import (
    "fmt"
    "time"
)

func main() {
    _, err := time.Parse("2006-01-02", "30/05/2026")
    if err != nil {
        fmt.Println("parse failed")
    }
}

Parsowanie czasów z godziną

Aby uwzględnić godziny i minuty, należy umieścić pola czasu zarówno w układzie, jak i w danych wejściowych.

package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.Parse("2006-01-02 15:04", "2026-05-30 09:05")
    fmt.Println(t.Hour(), t.Minute())
}

Konwersja w obie strony

Parse i Format są operacjami odwrotnymi. Można odczytać znacznik czasu, wykonać na nim operacje, a następnie ponownie sformatować wynik.

package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.Parse(time.RFC3339, "2026-05-30T09:00:00Z")
    fmt.Println(t.Format("Jan 2, 2006"))
}

Częsty błąd: nieprawidłowy układ referencyjny

Początkujący często zapisują "2020-12-31" jako układ. To błąd: układ musi używać wartości referencyjnych (2006, 01, 02), a nie przykładowej daty.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 0, 0, 0, 0, time.UTC)
    fmt.Println(t.Format("2006/01/02"))
}

Szybkie sprawdzenie

Jaki ciąg znaków przedstawia datę w układzie referencyjnym Go?

Podsumowanie: formatowanie i parsowanie

Poznano pracę z tekstową reprezentacją czasu:

  • Układy korzystają z czasu referencyjnego 2006-01-02 15:04:05.
  • Format tworzy ciągi znaków, a Parse je odczytuje.
  • Należy używać wbudowanych stałych, takich jak time.RFC3339, i zawsze sprawdzać błędy parsowania.
package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.Parse("2006-01-02", "2026-05-30")
    fmt.Println(t.Format("Monday"))
}

Często zadawane pytania

Czy lekcja „Formatowanie i analizowanie” jest bezpłatna?

Tak — pełny tekst „Formatowanie i analizowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Formatowanie i analizowanie”?

Używaj układu referencyjnego Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Go Academy?

Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Formatowanie i analizowanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?

Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Czas i czas trwania
  2. Formatowanie i analizowanie
  3. Timery i tickery
  4. Strefy czasowe
← Powrót do Go Academy