2016-02-18 25 views

Odpowiedz

40
package main 

import (
    "time" 
    "fmt" 
) 

func main(){ 
    fmt.Println(time.Now().UTC().Format(time.RFC3339)) 
} 

golang Time.Format

+0

To powinna być zaakceptowana odpowiedź. Inni mogą pracować, ale z pewnością pomylą kogoś, kto nie znał kodu. – Shadoninja

+0

ISO 8601 i RFC3339 nie są technicznie tym samym. https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats – 425nesp

+1

Z tego, co mogłem powiedzieć, RFC3339 jest bardziej rygorystyczną wersją ISO 8601. Prawdopodobnie bezpieczne jest korzystanie z formatu RFC, jeśli system oczekuje ISO. –

27
package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05-0700")) 
} 
4

Wymiana znak w formacie z Z wyzwala zachowania ISO 8601 drukowania Z zamiast przesunięcie strefy UTC. Więc Z jest ważne.

package main  
import (
    "fmt" 
    "time" 
) 


func main() { 
    fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05Z07:00")) 
} 
// this is the same format used by RFC3339. just a note on why. 
+0

Wygląda na to, że nie zwraca poprawnej wartości strefy czasowej, a następnie Z – Amol

+0

Jestem pewien, że drukuje prawidłową sygnaturę czasową. Jest to ten sam format używany w time.Time. Zobacz https://golang.org/src/time/format.go?s=15423:15465#L78 – dustinevan

Powiązane problemy