Maison > Article > développement back-end > Comment convertir l'heure en Golang
Golang est un langage de programmation émergent qui offre d'excellentes performances et flexibilité en termes de temps de traitement. Pendant le développement, nous devons souvent convertir les heures dans différents formats, tels que les horodatages Unix, les chaînes ou la date et l'heure dans un fuseau horaire spécifié. Dans cet article, nous nous concentrerons sur la conversion du temps dans Golang.
Le package time est utilisé dans Golang pour effectuer des opérations temporelles. Un horodatage Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC. Nous pouvons utiliser la fonction time.Unix pour convertir l'horodatage Unix en type time.Time (une structure représentant l'heure et la date en Golang).
Par exemple, pour convertir l'horodatage Unix 1562725815 en un objet temporel, vous pouvez procéder comme suit :
timestamp := int64(1562725815) t := time.Unix(timestamp, 0) fmt.Println(t) // 输出:2019-07-10 02:30:15 +0000 UTC
Dans le code ci-dessus, nous définissons d'abord un horodatage Unix et le passons en paramètre à la fonction time.Unix. La fonction renvoie un objet time.Time et nous pouvons utiliser la fonction Println pour imprimer sa valeur.
Nous pouvons utiliser la méthode Unix de time.Time type pour convertir l'heure en horodatage Unix. La méthode Unix renvoie les secondes et les nanosecondes, nous pouvons éventuellement ignorer les nanosecondes.
Par exemple, pour convertir un objet temporel t en un horodatage Unix, vous pouvez procéder comme suit :
timestamp := t.Unix() fmt.Println(timestamp) // 输出:1562725815
Dans le code ci-dessus, nous appelons la méthode t.Unix() pour obtenir l'horodatage Unix de l'objet temporel t.
Pour convertir l'heure en chaîne, nous pouvons utiliser la méthode Format de l'heure.Type d'heure et une chaîne au format spécifié. Les caractères du format horaire dans Golang sont basés sur la norme de langage ANSI C.
Par exemple, pour convertir l'objet temporel t en une chaîne au format "2006-01-02 15:04:05", vous pouvez procéder comme suit :
layout := "2006-01-02 15:04:05" str := t.Format(layout) fmt.Println(str) // 输出:2019-07-10 02:30:15
Dans le code ci-dessus, nous définissons d'abord un caractère de format Disposition des chaînes et transmettez-la en tant que paramètre à la méthode t.Format. La méthode renvoie une chaîne générée en fonction du format de mise en page.
Nous pouvons utiliser la fonction time.Parse pour analyser une chaîne en un objet time. Pour utiliser cette fonction, nous devons fournir une chaîne de format et la chaîne à analyser.
Par exemple, pour analyser la chaîne "2019-07-10 02:30:15" au format "2006-01-02 15:04:05" dans un objet temporel, vous pouvez procéder comme suit :
layout := "2006-01-02 15:04:05" str := "2019-07-10 02:30:15" t, err := time.Parse(layout, str) if err != nil { panic(err) } fmt.Println(t) // 输出:2019-07-10 02:30:15 +0000 UTC
ci-dessus Dans le code, nous définissons d'abord une disposition de chaîne de format et une chaîne str à analyser, puis les transmettons comme paramètres à la fonction time.Parse. La fonction renvoie un objet time.Time et une erreur. Si l'analyse échoue, nous recevrons une erreur.
Lors de la conversion de l'heure, nous devons parfois prendre en compte la différence de fuseau horaire. Il existe une fonction LoadLocation dans le package time de Golang qui peut nous aider à gérer la conversion de fuseau horaire.
Par exemple, pour convertir l'heure locale en heure UTC, vous pouvez procéder comme suit :
layout := "2006-01-02 15:04:05" str := "2019-07-10 02:30:15" local, err := time.ParseInLocation(layout, str, time.Local) if err != nil { panic(err) } utc := local.In(time.UTC) fmt.Println(utc) // 输出:2019-07-10 02:30:15 +0000 UTC
Dans le code ci-dessus, nous définissons d'abord le fuseau horaire sur le fuseau horaire local, puis utilisons la méthode time.ParseInLocation pour analyser la chaîne. dans un objet temporel. L'heure analysée est un objet local. Ensuite, nous utilisons la méthode local.In(time.UTC) pour convertir l'objet local en heure UTC.
Résumé
La conversion du temps de Golang est très flexible. Nous pouvons convertir des objets temporels en horodatages, chaînes ou dates et heures Unix dans un fuseau horaire spécifié, et nous pouvons également convertir ces types de données en objets temporels. Assurez-vous d'être conscient des différences de fuseau horaire lors du traitement des temps, sinon vous risquez d'obtenir des résultats inexacts. En utilisant correctement les capacités de conversion de temps de Golang, nous pouvons plus facilement créer des applications efficaces et fiables.
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!