Maison >développement back-end >Golang >Comment analyser correctement les horodatages de type Tar dans la fonction « time.Parse » de Go ?

Comment analyser correctement les horodatages de type Tar dans la fonction « time.Parse » de Go ?

DDD
DDDoriginal
2024-12-09 07:32:06731parcourir

How to Correctly Parse Tar-like Timestamps in Go's `time.Parse` Function?

Analyse de dates dans Go

L'analyse des horodatages dans Go peut être une tâche ardue avec l'API complexe de time.Parse. Examinons un problème courant rencontré lors de la tentative d'analyse d'horodatages similaires à ceux produits par tar, tels que « 2011-01-19 22:15 ».

Problème d'analyse

L'extrait de code suivant échoue avec l'erreur "temps d'analyse" 19/01/2011 22:15": mois hors plage":

package main

import (
    "fmt"
    "time"
)

func main() {
    var time, error = time.Parse("2011-01-19 22:15", "2011-01-19 22:15")
    if error != nil {
        fmt.Println(error.String())
        return
    }
    fmt.Println(time)
}

Comprendre l'erreur

Le message d'erreur indique que la chaîne de format fournie à time.Parse attend la valeur du mois doit être comprise entre 1 et 12, tandis que l'horodatage fourni contient janvier (représenté par 01), qui est le premier mois.

Résoudre le problème

Pour résoudre ce problème, nous devons personnaliser la chaîne de format pour interpréter correctement l'horodatage. En se référant à la documentation du package Go time, on retrouve les instructions suivantes :

"L'heure standard utilisée dans les layouts est :

Lun 2 janvier 15:04:05 MST 2006 (MST est GMT-0700)

Pour définir votre propre format, notez à quoi ressemblerait l'heure standard formatée dans votre manière."

En modifiant la chaîne de format en conséquence, nous avons :

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
}

Ce code affichera : "2011-01-19 22:15:00 0000 UTC".

En suivant les instructions fournies dans la documentation, nous avons pu personnaliser la chaîne de format pour analyser avec succès l'horodatage dans le format souhaité. format.

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