Tôi cần có thời gian hiện tại ở các múi giờ khác nhau.Làm thế nào để có được dấu thời gian hiện tại trong các múi giờ khác ở Golang?
Hiện nay tôi biết rằng chúng tôi có thể làm như sau:
t := time.Now()
fmt.Println("Location:", t.Location(), ":Time:", t)
utc, err := time.LoadLocation("America/New_York")
if err != nil {
fmt.Println("err: ", err.Error())
}
fmt.Println("Location:", utc, ":Time:", t.In(utc))
Tên LoadLocation được thực hiện để trở thành một tên vị trí tương ứng với một tập tin trong cơ sở dữ liệu IANA Time Zone, chẳng hạn như "America/New_York".
Có cách nào đơn giản hơn để có được thời gian hiện tại không, nếu tên quốc gia hoặc bù trừ GMT được đưa ra, ví dụ: +530 cho Ấn Độ?
Chỉnh sửa: Tôi cũng muốn hỗ trợ tiết kiệm ánh sáng ban ngày.
Trong khi có một số trường hợp bằng cách sử dụng một cố định bù đắp được thích hợp, nói chung nó tốt hơn để gõ 'Continent/City'. Các múi giờ và quy tắc tiết kiệm ánh sáng ban ngày là chính trị và thay đổi. Sử dụng 'Continent/City' sẽ cho phép ứng dụng của bạn điều chỉnh các thay đổi đó khi cơ sở dữ liệu Vùng thời gian IANA cơ bản được cập nhật. Nó cũng sẽ chăm sóc tiết kiệm ban ngày cho bạn. – Schwern