วิธีใดดีที่สุดในการรับการประทับเวลาปัจจุบันใน Go และแปลงเป็นสตริง ฉันต้องการทั้งวันที่และเวลาในเช่น YYYYMMDDhhmmss
วิธีใดดีที่สุดในการรับการประทับเวลาปัจจุบันใน Go และแปลงเป็นสตริง ฉันต้องการทั้งวันที่และเวลาในเช่น YYYYMMDDhhmmss
คำตอบ:
ใช้time.Now()
ฟังก์ชันและtime.Format()
วิธีการ
t := time.Now()
fmt.Println(t.Format("20060102150405"))
พิมพ์ออกมา20110504111515
หรืออย่างน้อยก็เมื่อไม่กี่นาทีที่ผ่านมา (ฉันใช้เวลาออมแสงตะวันออก) มีรูปแบบเวลาที่กำหนดไว้ล่วงหน้าหลายรูปแบบในค่าคงที่ที่กำหนดไว้ในแพ็กเกจเวลา
คุณสามารถใช้time.Now().UTC()
หากคุณต้องการมี UTC มากกว่าเขตเวลาท้องถิ่นของคุณ
Kitchen
ค่าคงที่แน่นอน( = "3:04PM"
)
การตอบกลับอื่น ๆ ทั้งหมดนั้นนำไปสู่การพลาดอย่างมากสำหรับคนที่มาจาก Google และกำลังมองหา "timestamp in go"! YYYYMMDDhhmmss ไม่ใช่ "การประทับเวลา"
ในการรับ "การประทับเวลา" ของวันที่ที่ไป (จำนวนวินาทีจากมกราคม 1970) ฟังก์ชันที่ถูกต้องคือ. Unix ()และจะส่งกลับจำนวนเต็ม
Get current time as formatted string in Go?
- หวังว่าจะมีคนอนุมัตินะ
เพื่อให้อ่านง่ายควรใช้ค่าคงที่ RFC ในแพ็คเกจเวลา (ฉันคิดว่า)
import "fmt"
import "time"
func main() {
fmt.Println(time.Now().Format(time.RFC850))
}
Tuesday, 10-Nov-09 23:00:00 UTC
RFC3339 = "2006-01-02T15:04:05Z07:00"
play.golang.org/p/XmobwWSz5pN golang.org/pkg/time
ใช้ฟังก์ชันtime.Now ()และtime.Format () (เป็นเวลา LocalTime () ไม่มีอยู่อีกต่อไปตั้งแต่ Go 1.0.3)
t := time.Now()
fmt.Println(t.Format("20060102150405"))
การสาธิตออนไลน์ (พร้อมวันที่แก้ไขในอดีตในสนามเด็กเล่นไม่เป็นไร)
s := "Actual time is: "+time.Now().String()
ค้นหาข้อมูลเพิ่มเติมในโพสต์นี้: รับวันที่และเวลาปัจจุบันในรูปแบบต่างๆใน golang
นี่คือรสชาติของรูปแบบต่างๆที่คุณจะพบในโพสต์ก่อนหน้านี้:
ในฐานะที่เป็นเสียงสะท้อนต่อการตอบสนองของ @ Bactisme วิธีที่เราจะเรียกคืนการประทับเวลาปัจจุบัน (ในหน่วยมิลลิวินาทีเป็นต้น) คือ:
msec := time.Now().UnixNano() / 1000000
แหล่งข้อมูล: https://gobyexample.com/epoch
https://golang.org/src/time/format.go ที่ระบุสำหรับเวลาในการแยกวิเคราะห์15
จะใช้เป็นชั่วโมง04
ใช้เป็นนาที05
เป็นวินาที
สำหรับการแยกวัน11
, Jan
, January
สำหรับเดือน, 02
, Mon
, Monday
สำหรับวันของเดือน2006
สำหรับปีและแน่นอนMST
สำหรับโซน
แต่คุณสามารถใช้เลย์เอาต์นี้ได้เช่นกันซึ่งฉันพบว่าง่ายมาก "Mon Jan 2 15:04:05 MST 2006"
const layout = "Mon Jan 2 15:04:05 MST 2006"
userTimeString := "Fri Dec 6 13:05:05 CET 2019"
t, _ := time.Parse(layout, userTimeString)
fmt.Println("Server: ", t.Format(time.RFC850))
//Server: Friday, 06-Dec-19 13:05:05 CET
mumbai, _ := time.LoadLocation("Asia/Kolkata")
mumbaiTime := t.In(mumbai)
fmt.Println("Mumbai: ", mumbaiTime.Format(time.RFC850))
//Mumbai: Friday, 06-Dec-19 18:35:05 IST
เพื่อตอบคำถามที่แน่นอน:
import "github.com/golang/protobuf/ptypes"
Timestamp, _ = ptypes.TimestampProto(time.Now())