Saya mencoba menambahkan beberapa nilai dari database saya ke a []string
dalam Go. Beberapa di antaranya adalah stempel waktu.
Saya mendapatkan kesalahan:
tidak bisa menggunakan U.Created_date (type time.Time) sebagai tipe string dalam elemen array
Bisakah saya mengonversi time.Time
ke 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)
}
EDIT
Saya menambahkan yang berikut ini. Ini berfungsi sekarang, terima kasih.
userCreatedDate := U.Created_date.Format("2006-01-02 15:04:05")
userSessionCreatedDate := US.Created_date.Format("2006-01-02 15:04:05")
userSessionTimestamp := US.Timestamp.Format("2006-01-02 15:04:05")
Jawaban:
Anda dapat menggunakan
Time.String()
metode untuk mengonversi filetime.Time
a menjadistring
. Ini menggunakan format string"2006-01-02 15:04:05.999999999 -0700 MST"
.Jika Anda membutuhkan format kustom lainnya, Anda dapat menggunakan
Time.Format()
. Misalnya untuk mendapatkan stempel waktu dalam formatyyyy-MM-dd HH:mm:ss
menggunakan format string"2006-01-02 15:04:05"
.Contoh:
Output (coba di Go Playground ):
Catatan: waktu di Go Playground selalu disetel ke nilai yang terlihat di atas. Jalankan secara lokal untuk melihat tanggal / waktu saat ini.
Juga perhatikan bahwa menggunakan
Time.Format()
, sebagai tata letak,string
Anda selalu harus melewatkan waktu yang sama - disebut waktu referensi - yang diformat dengan cara yang Anda inginkan untuk memformat hasil. Ini didokumentasikan diTime.Format()
:sumber
Mon Jan 2 15:04:05 -0700 MST 2006
dan meletakkan waktu ini dalam format apa pun yang Anda inginkan. Go akan memahami format jika Anda lulus dengan nilai ini. Anda tidak dapat menggunakan nilai waktu lainnya. Saya butuh waktu beberapa saat untuk mengetahuinya dan berpikir untuk menambahkannya sebagai komentarsumber
Buka Playground http://play.golang.org/p/DN5Py5MxaB
sumber
Temukan solusi sederhana untuk mengubah Format Tanggal & Waktu di Go Lang. Temukan contoh di bawah ini.
Tautan Paket: https://github.com/vigneshuvi/GoDateFormat .
Silakan temukan pemiliknya: https://medium.com/@Martynas/formatting-date-and-time-in-golang-5816112bf098
sumber
sumber