แปลงการประทับเวลาเป็นสตริง [ซ้ำ]
Dec 07 2020
ฉันต้องการรับการประทับเวลาเป็นสตริง หากฉันใช้stringการแปลงฉันไม่พบข้อผิดพลาด แต่ผลลัพธ์ไม่สามารถอ่านได้ ต่อมาฉันต้องการให้เราเป็นส่วนหนึ่งของชื่อไฟล์ ดูเหมือนเครื่องหมายคำถามเช่น ฉันพบตัวอย่างดังนี้:https://play.golang.org/p/bq2h3h0YKpไม่สามารถแก้ปัญหาของฉันได้อย่างสมบูรณ์ ขอบคุณ
now := time.Now() // current local time
sec := now.Unix() // number of seconds since January 1, 1970 UTC
fmt.Println(string(sec))
ฉันจะรับการประทับเวลาเป็นสตริงได้อย่างไร
คำตอบ
2 Gealber Dec 07 2020 at 05:52
สิ่งนี้ใช้ได้กับฉัน
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
ต่อไปนี้เป็นสองตัวอย่างของวิธีที่คุณสามารถแปลงการประทับเวลาของยูนิกซ์เป็นสตริง
ตัวอย่างแรก ( s1) ใช้แพคเกจและหน้าที่ของมันstrconv FormatIntตัวอย่างที่สอง ( s2) ใช้fmtแพคเกจ ( เอกสาร ) Sprintfและฟังก์ชั่น
โดยส่วนตัวแล้วฉันชอบSprintfตัวเลือกมากกว่าจากมุมมองด้านสุนทรียศาสตร์ ฉันยังไม่ได้ตรวจสอบประสิทธิภาพ
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)
}
สนามเด็กเล่นโกลัง: https://play.golang.org/p/jk_xHYK_5Vu