web-dev-qa-db-fra.com

Comment formater l'heure actuelle en utilisant un format aaaaMMjjHHmmss?

J'essaie de formater l'heure actuelle en utilisant ce format yyyyMMddHHmmss.

t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))

C'est la sortie:

yyyyMMddHHmmss

Aucune suggestion?

64
sergserg

Utilisation

fmt.Println(t.Format("20060102150405"))

comme Go utilise les constantes suivantes pour formater la date, reportez-vous ici

const (
    stdLongMonth      = "January"
    stdMonth          = "Jan"
    stdNumMonth       = "1"
    stdZeroMonth      = "01"
    stdLongWeekDay    = "Monday"
    stdWeekDay        = "Mon"
    stdDay            = "2"
    stdUnderDay       = "_2"
    stdZeroDay        = "02"
    stdHour           = "15"
    stdHour12         = "3"
    stdZeroHour12     = "03"
    stdMinute         = "4"
    stdZeroMinute     = "04"
    stdSecond         = "5"
    stdZeroSecond     = "05"
    stdLongYear       = "2006"
    stdYear           = "06"
    stdPM             = "PM"
    stdpm             = "pm"
    stdTZ             = "MST"
    stdISO8601TZ      = "Z0700"  // prints Z for UTC
    stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
    stdNumTZ          = "-0700"  // always numeric
    stdNumShortTZ     = "-07"    // always numeric
    stdNumColonTZ     = "-07:00" // always numeric
)
151
Cris

j'ai codé un paquet pour cet usecase https://github.com/vjeantet/jodaTime

date := jodaTime.Format("YYYY.MM.dd", time.Now())
fmt.Println(date)

Il vous permet d’analyser et de formater une heure.Time suivant la disposition jodaTime: http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html

9
vjeantet

Le forfait de temps à Golang contient des méthodes qui pourraient valoir la peine d’être examinées. 

func (heure) Format

func (t Time) Format (chaîne de mise en forme) chaîne Format renvoie une représentation textuelle de la valeur temporelle formatée en fonction de la mise en page, qui définit le format en indiquant comment l’heure de référence,

Lun 2 jan 15:04:05 -0700 HNR 2006 serait affiché s'il s'agissait de la valeur; il sert d'exemple de la sortie souhaitée. Les mêmes règles d'affichage seront alors appliquées à la valeur temporelle. Les schémas prédéfinis ANSIC, UnixDate, RFC3339 et autres décrivent des représentations standard et pratiques du temps de référence. Pour plus d'informations sur les formats et la définition de l'heure de référence, voir la documentation relative à ANSIC et aux autres constantes définies par ce package.

Source ( http://golang.org/pkg/time/#Time.Format )

J'ai aussi trouvé un exemple de définition de la mise en page ( http://golang.org/src/pkg/time/example_test.go )

func ExampleTime_Format() {
        // layout shows by example how the reference time should be represented.
        const layout = "Jan 2, 2006 at 3:04pm (MST)"
        t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.Local)
        fmt.Println(t.Format(layout))
        fmt.Println(t.UTC().Format(layout))
        // Output:
    // Nov 10, 2009 at 3:00pm (PST)
        // Nov 10, 2009 at 11:00pm (UTC)
    }
5
TheZelus

Cette question se trouve en haut de la recherche Google lorsque vous trouvez le "format de l'heure actuelle de golang". Par conséquent, pour toutes les personnes qui souhaitent utiliser un autre format, n'oubliez pas que vous pouvez toujours appeler:

t := time.Now()

t.Year()

t.Month()

t.Day()

t.Hour()

t.Minute()

t.Second()

Par exemple, pour obtenir l'heure de la date actuelle sous la forme "AAAA-MM-JJTHH: MM: SS" (par exemple, 2019-01-22T12: 40: 55), vous pouvez utiliser ces méthodes avec fmt.Sprintf:

t := time.Now()
formatted := fmt.Sprintf("%d-%02d-%02dT%02d:%02d:%02d",
        t.Year(), t.Month(), t.Day(),
        t.Hour(), t.Minute(), t.Second())

Comme toujours, rappelez-vous que les documents sont la meilleure source d’apprentissage: https://golang.org/pkg/time/

2
Luis Cabrera Benito
import("time")

layout := "2006-01-02T15:04:05.000Z"
str := "2014-11-12T11:45:26.371Z"
t, err := time.Parse(layout, str)
if err != nil {
    fmt.Println(err)
}
fmt.Println(t)

donne:

>> 2014-11-12 11:45:26.371 +0000 UTC
1
Cool.wen