Maison >développement back-end >Golang >Golang convertir l'horodatage
Les horodatages sont un moyen pour les ordinateurs de traiter le temps, en utilisant généralement des nombres entiers pour représenter le nombre de secondes d'un instant à un autre (généralement le 1er janvier 1970 00:00:00 UTC). Dans le langage Go, la conversion des horodatages est très simple. Cet article présentera quelques méthodes et techniques associées.
time.Unix() La fonction accepte deux paramètres, l'un est le L'horodatage Unix et l'autre est le décalage en nanosecondes. Il renvoie une valeur correspondante de type Time. Par exemple :
package main import ( "fmt" "time" ) func main() { unixTimestamp := int64(1609459200) t := time.Unix(unixTimestamp, 0) fmt.Println(t) }
Le code ci-dessus convertit l'horodatage 1609459200
en la valeur temporelle correspondante : 2021-01-01 00:00:00 +0000 UTC code>. Le deuxième paramètre est le décalage en nanosecondes. Si vous n'en avez pas besoin, vous pouvez passer 0. <code>1609459200
转换为对应的时间值:2021-01-01 00:00:00 +0000 UTC
。其中第二个参数是纳秒偏移量,如果你不需要用到它,可以传入 0。
time.UnixNano() 函数接受一个 Unix 时间戳,返回它对应的纳秒数。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := int64(1609459200) nano := time.UnixNano(unixTimestamp) fmt.Println(nano) }
上面的代码将时间戳 1609459200
转换为对应的纳秒数:1609459200000000000
。
time.Since() 方法接受一个时间值,并返回当前时间与该时间值之间的持续时间。因此,我们可以将时间戳转换为时间值,然后使用 time.Since() 方法来计算其对应的持续时间。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := int64(1609459200) t := time.Unix(unixTimestamp, 0) duration := time.Since(t) fmt.Println(duration) }
上面的代码将时间戳 1609459200
转换为对应的时间值,然后计算出它与当前时间的持续时间:73.141589ms
。
我们可以使用 time.Now().Unix() 方法获取当前时间的时间戳,它返回一个 int64 类型的值。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := time.Now().Unix() fmt.Println(unixTimestamp) }
上面的代码获取当前时间的时间戳,并将其打印出来。你可以看到,输出的时间戳是一个当前时间的整数值。
time.Parse() 方法接受两个参数,一个是时间格式字符串,另一个是需要转换的时间字符串。它返回一个对应的 Time 类型的值。例如:
package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05" str := "2021-01-01 00:00:00" t, err := time.Parse(layout, str) if err != nil { fmt.Println(err) return } fmt.Println(t) }
上面的代码将字符串 "2021-01-01 00:00:00"
转换为对应的时间值:2021-01-01 00:00:00 +0000 UTC
。其中,layout
参数是时间格式字符串,必须使用指定时间序列 Mon Jan 2 15:04:05 MST 2006
来表示时间的各个部分,这是因为 go 的时间包采用了该序列,而且其初始时间正好是 Unix 时间戳 0
time.UnixNano() la fonction accepte un horodatage Unix , renvoyant son nombre correspondant de nanosecondes. Par exemple :
rrreee#🎜🎜#Le code ci-dessus convertit l'horodatage1609459200
en nombre de nanosecondes correspondant : 1609459200000000000
. #🎜🎜#1609459200
en la valeur temporelle correspondante, puis calcule sa durée avec l'heure actuelle : 73.141589ms
code>. #🎜🎜#"2021-01-01 00:00:00"
en la valeur temporelle correspondante : 2021-01- 01 00:00:00 +0000 UTC
. Parmi eux, le paramètre layout
est une chaîne de format d'heure, et la séquence temporelle spécifiée Mon Jan 2 15:04:05 MST 2006
doit être utilisée pour représenter chaque partie du time. En effet, go Le paquet d'heure adopte cette séquence, et son heure initiale est exactement l'heure correspondant à l'horodatage Unix 0
. #🎜🎜##🎜🎜#Résumé#🎜🎜##🎜🎜#Cet article présente les méthodes et techniques de conversion des horodatages en valeurs de temps, nanosecondes, durée, etc. dans le langage go. Ces méthodes sont très utiles lorsque vous devez gérer le temps en langage Go. Bien entendu, en fonction de votre scénario d'application spécifique, vous pouvez choisir une ou plusieurs de ces méthodes pour la conversion et le traitement de l'horodatage. #🎜🎜#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!