2014-02-08 2 views
5

In Holland verwenden wir meistens YYYY-MM-DD HH: MM: SS. Wie kann ich das in Go formatieren? Alles, was ich einfüge (selbst nach dem Standard), gibt seltsame Zahlen.Output Go-Zeit in RFC3339 wie MySQL-Format

Dies ist mein Code (p.Created ist ein NanoSeconds int64 Objekt):

package main 

import (
    "database/sql" 
    "fmt" 
    _ "github.com/go-sql-driver/mysql" 
    "log" 
    "time" 
) 

const createdFormat = "2010-01-01 20:01:00" //"Jan 2, 2006 at 3:04pm (MST)" 

type Post struct { 
    Id  int64 
    Created int64 
    Title string 
    Body string 
} 

func main() { 
    // Establish database connection 
    dsn := "[email protected](127.0.0.1:3306)/testdb" 
    con, err := sql.Open("mysql", dsn) 
    if err != nil { 
     log.Println("Couldn't connect to databse:", err) 
    } else { 
     log.Println("DB Connection established") 
    } 
    defer con.Close() 

    // Try to get something 
    row := con.QueryRow("SELECT * FROM posts LIMIT 1") 
    p := new(Post) 
    err = row.Scan(&p.Id, &p.Created, &p.Title, &p.Body) 

    if err != nil { 
     log.Println("Failed to fetch Post") 
    } 
    fmt.Println(p) 
    fmt.Println(time.Unix(0, p.Created).Format(createdFormat)) 
} 

ich konnte nur concat time.Unix(0, p.Created).Year() usw., aber das ist nicht sehr sauber und ist ein Ärgernis für die Konsistenz.

Antwort

12

Es gab zwei Fehler in den oben genannten. Für das Format benötigen Sie die Ausgabe von dieser speziellen Datum/Zeit zu machen, und die Parameter zu time.Unix sind umgekehrt (playground)

const createdFormat = "2006-01-02 15:04:05" //"Jan 2, 2006 at 3:04pm (MST)" 

fmt.Println(time.Unix(1391878657, 0).Format(createdFormat)) 
+0

Das funktionierte, danke. Seltsam, dass die Docs-Anweisung 'func Unix (sec int64, nsec int64) Zeit 'tho. Wahrscheinlich verstehen Sie es falsch –

+0

'sec' ist die Anzahl der Sekunden seit der Epoche; 'nsec' ist die Anzahl der Nanosekunden nach' sec'. – publysher

+0

re den Kommentar - Ich bin mir nicht sicher, dass Mountain Standard Time in Holland nützlich ist ;-P –