Go:
Omvandla ett datum till en sträng
Hur:
I Go tillhandahåller time
-paketet funktionalitet för att arbeta med datum och tider, inklusive formatering av ett time.Time
-objekt till en sträng. Metoden Format
för typen time.Time
används för detta syfte, där du anger layoutsträngen enligt referenstiden “Mon Jan 2 15:04:05 MST 2006”.
Exempel:
package main
import (
"fmt"
"time"
)
func main() {
currentTime := time.Now() // hämtar aktuellt datum och tid
fmt.Println("Aktuell Tid:", currentTime)
// Formatera aktuell tid i dd-mm-yyyy-format
formattedDate := currentTime.Format("02-01-2006")
fmt.Println("Formaterat Datum:", formattedDate)
// Formatera aktuell tid mer detaljerat
detailedFormat := currentTime.Format("Mon, 02 Jan 2006 15:04:05 MST")
fmt.Println("Detaljerat Formaterat Datum:", detailedFormat)
}
Exempel på utdata:
Aktuell Tid: 2023-04-12 11:45:20.312457 +0000 UTC
Formaterat Datum: 12-04-2023
Detaljerat Formaterat Datum: Wed, 12 Apr 2023 11:45:20 UTC
Utdatan kommer att variera beroende på det aktuella datumet och tiden när programmet körs.
Fördjupning:
I sammanhanget av Go hanteras datum- och tidsmanipulation, inklusive formatering, huvudsakligen av time
-paketet. Angreppssättet för datumformatering i Go, som specificeras av Format
-metoden med en specifik layoutsträng, är unikt jämfört med många andra programmeringsspråk som kanske använder enkla formatangivare som %Y
för ett 4-siffrigt år. Go-metoden kräver att utvecklare kommer ihåg den specifika referenstiden: Mon Jan 2 15:04:05 MST 2006, eftersom den fungerar som ett mönster för formatering eller tolkning av datum.
Denna metod, som initialt kan verka icke-intuitiv för utvecklare bekanta med strftime-liknande formateringsfunktioner, designades för tydlighet och för att undvika förvirring av lokalt beroende format. När man väl vant sig vid det, finner många att denna metod minskar fel och förbättrar kodläsbarheten.
Dessutom innebär Go:s standardbiblioteksansats att för de flesta vanliga användningsfall är tredjepartsbibliotek onödiga. Detta förenklar hanteringen av beroenden och säkerställer ett konsekvent beteende över olika projekt. Dock, när man arbetar med mer komplexa tidszonskonverteringar eller återkommande datumberäkningar, kanske utvecklare behöver undersöka ytterligare paket som github.com/rickar/cal
för beräkning av helgdagar eller github.com/golang/time
för mer nyanserad tidsmanipulering än vad det standard time
-paketet erbjuder.