Maison  >  Article  >  développement back-end  >  Comment obtenir le début de journée local en Go ?

Comment obtenir le début de journée local en Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-11 02:47:03499parcourir

 How to Get the Local Start of Day in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn