Maison  >  Article  >  développement back-end  >  Comment convertir l'heure en Golang

Comment convertir l'heure en Golang

PHPz
PHPzoriginal
2023-04-23 10:13:431566parcourir

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.

  1. Conversion de l'horodatage Unix en heure

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.

  1. Heure vers horodatage Unix

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.

  1. Convertir l'heure en chaîne

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.

  1. String to time

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.

  1. Conversion de fuseau horaire

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!

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