无法将time.Now()转换为字符串

时间:2018-10-23 05:58:54

标签: go

我有这个结构:

// Nearby whatever
type Nearby struct {
    id          int    `json:"id,omitempty"`
    me          int    `json:"me,omitempty"`
    you         int    `json:"you,omitempty"`
    contactTime string `json:"contactTime,omitempty"`
}

然后我称之为:

strconv.Itoa(time.Now())

像这样:

s1 := Nearby{id: 1, me: 1, you: 2, contactTime: strconv.Itoa(time.Now())}

但它说:

> cannot use time.Now() (type time.Time) as type int in argument to
> strconv.Itoa

有人知道这是怎么回事吗?我正在尝试将int转换为字符串。

1 个答案:

答案 0 :(得分:2)

  

有人知道这是怎么回事吗?我正在尝试将int转换为字符串。

时间类型不等同于int。如果您需要字符串表示形式,则类型Time的类型为String()

下面的示例代码(也可以作为可运行的Go Playground snippet使用):

package main

import (
    "fmt"
    "time"
)

// Nearby whatever
type Nearby struct {
    id          int
    me          int
    you         int
    contactTime string
}

func main() {
    s1 := Nearby{
        id:          1,
        me:          1,
        you:         2,
        contactTime: time.Now().String(), // <-- type Time has a String() method
    }

    fmt.Printf("%+v", s1)

}

希望这会有所帮助。干杯,