แปลงการประทับเวลาเป็นสตริง [ซ้ำ]

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