snippetgoCritical
Convert time.Time to string
Viewed 0 times
stringconverttime
Problem
I'm trying to add some values from my database to a
I get the error:
cannot use U.Created_date (type time.Time) as type string in array element
Can I convert
[]string in Go. Some of these are timestamps.I get the error:
cannot use U.Created_date (type time.Time) as type string in array element
Can I convert
time.Time to string?type UsersSession struct {
Userid int
Timestamp time.Time
Created_date time.Time
}
type Users struct {
Name string
Email string
Country string
Created_date time.Time
Id int
Hash string
IP string
}var usersArray = [][]string{}
rows, err := db.Query("SELECT u.id, u.hash, u.name, u.email, u.country, u.IP, u.created_date, us.timestamp, us.created_date FROM usersSession AS us LEFT JOIN users AS u ON u.id = us.userid WHERE us.timestamp + interval 30 minute >= now()")
U := Users{}
US := UsersSession{}
for rows.Next() {
err = rows.Scan(&U.Id, &U.Hash, &U.Name, &U.Email, &U.Country, &U.IP, &U.Created_date, &US.Timestamp, &US.Created_date)
checkErr(err)
userid_string := strconv.Itoa(U.Id)
user := []string{userid_string, U.Hash, U.Name, U.Email, U.Country, U.IP, U.Created_date, US.Timestamp, US.Created_date}
// -------------
// ^ this is where the error occurs
// cannot use U.Created_date (type time.Time) as type string in array element (for US.Created_date and US.Timestamp aswell)
// -------------
usersArray = append(usersArray, user)
log.Print("usersArray: ", usersArray)
}Solution
You can use the
If you need other custom format, you can use
Example:
Output (try it on the Go Playground):
Note: time on the Go Playground is always set to the value seen above. Run it locally to see current date/time.
Also note that using
Format returns a textual representation of the time value formatted according to layout, which defines the format by showing how the reference time, defined to be
would be displayed if it were the value; it serves as an example of the desired output. The same display rules will then be applied to the time value.
Time.String() method to convert a time.Time to a string. This uses the format string "2006-01-02 15:04:05.999999999 -0700 MST".If you need other custom format, you can use
Time.Format(). For example to get the timestamp in the format of yyyy-MM-dd HH:mm:ss use the format string "2006-01-02 15:04:05".Example:
t := time.Now()
fmt.Println(t.String())
fmt.Println(t.Format("2006-01-02 15:04:05"))Output (try it on the Go Playground):
2009-11-10 23:00:00 +0000 UTC
2009-11-10 23:00:00Note: time on the Go Playground is always set to the value seen above. Run it locally to see current date/time.
Also note that using
Time.Format(), as the layout string you always have to pass the same time –called the reference time– formatted in a way you want the result to be formatted. This is documented at Time.Format():Format returns a textual representation of the time value formatted according to layout, which defines the format by showing how the reference time, defined to be
Mon Jan 2 15:04:05 -0700 MST 2006would be displayed if it were the value; it serves as an example of the desired output. The same display rules will then be applied to the time value.
Code Snippets
t := time.Now()
fmt.Println(t.String())
fmt.Println(t.Format("2006-01-02 15:04:05"))2009-11-10 23:00:00 +0000 UTC
2009-11-10 23:00:00Mon Jan 2 15:04:05 -0700 MST 2006Context
Stack Overflow Q#33119748, score: 282
Revisions (0)
No revisions yet.