Maison  >  Article  >  développement back-end  >  Utilisation de la bibliothèque de traitement du temps en langage Go

Utilisation de la bibliothèque de traitement du temps en langage Go

WBOY
WBOYoriginal
2023-06-03 12:10:33625parcourir

Dans le développement logiciel, le temps de traitement est un problème récurrent. En particulier dans les grands systèmes, le temps est un élément essentiel pour l’enregistrement des événements, la planification des tâches et l’analyse des données. Par conséquent, utiliser une bibliothèque de traitement du temps adaptée devient une tâche très importante. Cet article présentera l'utilisation de la bibliothèque de traitement du temps time en langage Go. time

时间的表示

在Go语言中,我们可以使用time.Time类型来表示时间。一个Time类型的值包含了年、月、日、时、分、秒、纳秒和时区信息。这个类型是内置的,因此我们不需要安装任何额外的库来使用它。

获取当前时间

获取当前本地时间的方法是使用time.Now()函数。它会返回一个time.Time类型的时间对象,该对象表示程序运行时的当前时间。

func main() {
    current_time := time.Now()
    fmt.Println(current_time)
}

输出结果:

2021-05-17 16:34:22.7241986 +0800 CST m=+0.000731901

时间格式化

将时间按照不同的格式显示是很常见的需求。在Go语言中,我们可以使用time.Format()函数来进行时间格式化。这个函数接收一个格式字符串,根据这个格式将时间对象转换成对应的字符串。

func main() {
    current_time := time.Now()
    formatted_time := current_time.Format("2006-01-02 15:04:05")
    fmt.Println(formatted_time)
}

输出结果:

2021-05-17 16:34:22

在格式化字符串中,几个常用的占位符如下:

占位符 含义
2006 固定为4位的年份,表示是一种标准
01 固定为2位的月份,不足两位左侧补0
02 固定为2位的日期,不足两位左侧补0
15 固定为2位的小时,24小时制,不足两位左侧补0
04 固定为2位的分钟,不足两位左侧补0
05 固定为2位的秒,不足两位左侧补0

时间操作

Go语言的时间处理库还提供了一些时间操作方法。

增加或减少时长

time.Add()方法可以让我们添加或减少一段时间:

func main() {
    current_time := time.Now()
    after_one_hour := current_time.Add(time.Hour)
    fmt.Println(after_one_hour)
}

输出结果:

2021-05-17 17:34:22.6523704 +0800 CST m=+3601.928903701

在这个例子中,我们使用了time.Hour表示一个小时的时长,然后使用Add()方法将当前时间加上这段时长。这个方法的返回值是一个时间对象,它表示了当前时间往后一小时的时间点。

我们同样可以使用time.Sub()方法来计算两个时间之间的时间差:

func main() {
    start_time := time.Now()
    end_time := time.Now().Add(time.Hour)
    duration := end_time.Sub(start_time)
    fmt.Println(duration)
}

输出结果:

1h0m0s

这里的计算结果是一个time.Duration类型的值,它表示两个时间点之间的时长。

设置时间

time.Date()方法可以让我们根据指定的年、月、日、时、分、秒以及时区创建一个时间对象:

func main() {
    t := time.Date(2021, 5, 17, 15, 30, 0, 0, time.Local)
    fmt.Println(t)
}

输出结果:

2021-05-17 15:30:00 +0800 CST

获取时间信息

Time

Représentation du temps

En langage Go, on peut utiliser le type time.Time pour représenter le temps. Une valeur de type Time contient des informations sur l'année, le mois, le jour, l'heure, la minute, la seconde, la nanoseconde et le fuseau horaire. Ce type est intégré, nous n'avons donc pas besoin d'installer de bibliothèques supplémentaires pour l'utiliser.

Obtenir l'heure actuelle

La façon d'obtenir l'heure locale actuelle est d'utiliser la fonction time.Now(). Il renverra un objet time de type time.Time, qui représente l'heure actuelle à laquelle le programme est en cours d'exécution.

func main() {
    current_time := time.Now()
    fmt.Println(current_time.Year())      // 获取年份
    fmt.Println(current_time.Month())     // 获取月份
    fmt.Println(current_time.Day())       // 获取日期
    fmt.Println(current_time.Hour())      // 获取小时数
    fmt.Println(current_time.Minute())    // 获取分钟数
    fmt.Println(current_time.Second())    // 获取秒数
    fmt.Println(current_time.Weekday())   // 获取星期几,0表示星期日
}

Résultat de sortie :
    2021
    May
    17
    16
    34
    22
    Monday

    Formatage de l'heure

  • Il est très courant d'afficher l'heure dans différents formats. Dans le langage Go, nous pouvons utiliser la fonction time.Format() pour formater l'heure. Cette fonction reçoit une chaîne de format et convertit l'objet temporel en chaîne correspondante selon ce format.
  • rrreee
  • Résultat de sortie :
  • rrreee
Dans la chaîne de format, plusieurs espaces réservés couramment utilisés sont les suivants : 🎜 tr>Les secondes sont fixées à 2 chiffres. S'il y a moins de deux chiffres, ajoutez 0 sur le côté gauchetbody>
Espace réservé Signification tr>
2006 L'année est fixée à 4 chiffres, indiquant qu'il s'agit d'un standard
01 Le mois est fixé à 2 chiffres, et tous les chiffres manquants sont complétés par des 0 à gauche
02 La date est fixée à 2 chiffres, et les chiffres manquants sont complétés par des zéros à gauche
15 Fixé à 2 chiffres pour l'heure, format 24 heures, les chiffres manquants sont complétés par des 0 à gauche
04 code> La minute est fixée à 2 chiffres, et tout chiffre manquant est complété par des 0 à gauche
05

Opération temporelle

🎜La bibliothèque de traitement temporel du langage Go fournit également certaines méthodes de manipulation temporelle. 🎜🎜Augmenter ou diminuer la durée🎜🎜La méthode time.Add() nous permet d'ajouter ou de diminuer une période de temps : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Dans cet exemple, nous avons utilisé time.Hour représente la durée d'une heure, puis utilise la méthode Add() pour ajouter l'heure actuelle à cette durée. La valeur de retour de cette méthode est un objet time, qui représente le point temporel une heure après l'heure actuelle. 🎜🎜Nous pouvons également utiliser la méthode time.Sub() pour calculer la différence de temps entre deux heures : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Le résultat du calcul ici est un time.Duration Une valeur de type qui représente la durée entre deux instants. 🎜🎜Définir l'heure🎜🎜La méthode time.Date() nous permet de créer un objet horaire basé sur l'année, le mois, le jour, l'heure, la minute, la seconde et le fuseau horaire spécifiés : 🎜rrreee🎜Sortie résultat : 🎜 rrreee🎜Obtenir des informations temporelles🎜🎜Le type Time fournit certaines méthodes pour obtenir des informations temporelles, telles que l'année, le mois, le jour, l'heure, la minute, la seconde, etc. Voici quelques méthodes couramment utilisées : 🎜rrreee🎜Résultats de sortie : 🎜rrreee🎜Documentation de référence🎜🎜🎜[Documentation officielle de la langue Go](https://golang.org/pkg/time/)🎜🎜[Utilisation du temps Golang et date] (https://www.runoob.com/w3cnote/go-datetime.html)🎜🎜

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