Go では、time.Time タイムスタンプを文字列配列に直接追加しようとすると、エラーが発生することがあります。これを解決するには、String() メソッドまたは Format() メソッドを使用して、time.Time 値を文字列に変換します。
String() メソッドは、time.Time を変換します。デフォルトの形式「2006-01-02 15:04:05.999999999 -0700 MST」を使用して文字列に変換します。例:
import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.String()) // Output: 2023-05-09 11:33:42.134942534 -0500 CST }
カスタム形式が必要な場合は、レイアウト文字列を渡すことで Format() メソッドを使用できます。たとえば、タイムスタンプを「yyyy-MM-dd HH:mm:ss」の形式にするには:
t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) // Output: 2023-05-09 11:33:42
コード内で次のように変換することでエラーを修正できます。 time.Time 値を文字列配列に追加する前に、文字列に値を追加します:
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.String(), US.Timestamp.String(), US.Created_date.String()} usersArray = append(usersArray, user) }
String() メソッドを使用すると、 time.Time 値を文字列として []string 配列に正常に追加できます。
以上が文字列配列を追加するために Go の time.Time を文字列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。