Maison > Article > développement back-end > Comment obtenir le début de journée local en Go ?
Localisation du début d'un jour local
Pour récupérer un objet heure de début de journée local, une approche courante consiste à extraire le composants de l’année, du mois et du jour et reconstruire la date. Cependant, existe-t-il une fonction plus orthodoxe fournie par la bibliothèque standard ?
L'extrait suivant montre une fonction Bod personnalisée qui effectue cette tâche :
func Bod(t time.Time) time.Time { year, month, day := t.Date() return time.Date(year, month, day, 0, 0, 0, 0, t.Location()) }
Alors que la fonction Bod détermine correctement le local À partir d’aujourd’hui, la fonction Truncate, proposée comme alternative, fournit un résultat différent. Pour examiner cela, considérons le code suivant :
chicago, err := time.LoadLocation("America/Chicago") if err != nil { fmt.Println(err) return } now := time.Now().In(chicago) fmt.Println(Bod(now)) fmt.Println(Truncate(now))
Ce code génère le résultat suivant :
2014-08-11 00:00:00 -0400 EDT 2014-08-11 20:00:00 -0400 EDT
Il devient évident que la méthode Truncate fonctionne à l'heure UTC, tandis que la fonction Bod maintient l’heure locale (Chicago). De plus, Truncate suppose une journée constante de 24 heures, ce qui est inexact pour des endroits comme Chicago qui connaissent des variations de l'heure d'été.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!