Ubah stempel waktu sebagai string [duplikat]

Dec 07 2020

Saya ingin mendapatkan stempel waktu sebagai string. Jika saya menggunakan stringkonversi, saya tidak mendapat kesalahan tetapi hasilnya tidak dapat dibaca. Nanti, saya ingin kami memasukkannya sebagai bagian dari nama file. Sepertinya tanda tanya misalnya Saya menemukan beberapa contoh seperti ini:https://play.golang.org/p/bq2h3h0YKptidak sepenuhnya menyelesaikan masalah saya. Terima kasih

now := time.Now()      // current local time
sec := now.Unix()      // number of seconds since January 1, 1970 UTC
fmt.Println(string(sec))

Bagaimana saya bisa mendapatkan stempel waktu sebagai string?

Jawaban

2 Gealber Dec 07 2020 at 05:52

Sesuatu seperti ini berhasil untuk saya

package main

import (
    "fmt"
    "strconv"
    "time"
)

func main() {
    now := time.Now()
    unix := now.Unix()
    fmt.Println(strconv.FormatInt(unix, 10))
}
1 Jens Dec 07 2020 at 05:51

Berikut adalah dua contoh bagaimana Anda dapat mengonversi stempel waktu unix menjadi string.

Contoh pertama ( s1) menggunakan strconvpaket dan fungsinya FormatInt. Contoh kedua ( s2) menggunakan fmtpaket ( dokumentasi ) dan fungsinya Sprintf.

Secara pribadi, saya lebih suka Sprintfopsi dari sudut pandang estetika. Saya belum memeriksa performanya.

package main

import "fmt"
import "time"
import "strconv"

func main() {
    t := time.Now().Unix() // t is of type int64
    
    // use strconv and FormatInt with base 10 to convert the int64 to string
    s1 := strconv.FormatInt(t, 10)
    fmt.Println(s1)
    
    // Use Sprintf to create a string with format:
    s2 := fmt.Sprintf("%d", t)
    fmt.Println(s2)
}

Taman Bermain Golang: https://play.golang.org/p/jk_xHYK_5Vu