Sortie inattendue de time.Time : démystifier la chaîne "m="
Lorsqu'un programme Go exécute la fonction time.Now() , il récupère l'horodatage actuel. La sortie par défaut de cet horodatage a évolué au fil du temps, notamment avec la sortie de Go 1.9.
L'énigme "m= "
Dans les anciennes versions de Go, le temps .Now() produirait une chaîne au format suivant :
2018-07-04 12:03:07.2911671 +0530 IST
Cependant, dans Go 1.9 et versions ultérieures, la sortie a été étendue à inclure une mystérieuse chaîne "m=" :
2018-07-04 12:03:07.2911671 +0800 +08 m=+0.002000201
Pourquoi cet écart ? Cela est dû à l'ajout de la prise en charge de l'horloge monotone dans Go 1.9. La chaîne "m= " représente le temps monotone depuis le début du programme, exprimé sous forme de nombre de secondes à virgule flottante.
Évitez les surprises de format avec Format()
Au lieu de s'appuyer sur la sortie par défaut de time.Now(), il est recommandé d'utiliser la fonction Format() pour spécifier un format personnalisé pour l'horodatage. Par exemple :
import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05.000000")) }
Cela affichera l'horodatage dans un format cohérent quelle que soit la version Go :
2018-07-04 12:03:07.2911671
En utilisant Format(), vous pouvez vous assurer que vos programmes affichent toujours horodatages dans le format que vous attendez.
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!