Jaki jest najlepszy sposób uzyskania aktualnego znacznika czasu w Go i przekonwertowania go na ciąg? Potrzebuję zarówno daty, jak i godziny np. Format RRRRMMDDggmmss.
Odpowiedzi:
Użyj time.Now()
funkcji i time.Format()
metody.
t := time.Now()
fmt.Println(t.Format("20060102150405"))
drukuje 20110504111515
, a przynajmniej kilka minut temu. (Jestem na wschodnim czasie letnim). Istnieje kilka predefiniowanych formatów czasu w stałych zdefiniowanych w pakiecie czasu.
Możesz użyć, time.Now().UTC()
jeśli wolisz czas UTC niż lokalną strefę czasową.
Kitchen
stała ( = "3:04PM"
)
Wszystkie inne odpowiedzi są bardzo chybione dla kogoś, kto pochodzi z Google i szuka „sygnatury czasowej w go”! RRRRMMDDhhmmss nie jest „datownikiem”.
Aby uzyskać „znacznik czasu” daty w ruchu (liczbę sekund od stycznia 1970 r.), Poprawna funkcja to .Unix () , która w rzeczywistości zwraca liczbę całkowitą
Get current time as formatted string in Go?
. Miejmy nadzieję, że ktoś to zaakceptuje.
Dla czytelności najlepiej używać stałych RFC w pakiecie czasu (tak myślę)
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
Użyj funkcji time.Now () i time.Format () (ponieważ time.LocalTime () nie istnieje już od Go 1.0.3)
t := time.Now()
fmt.Println(t.Format("20060102150405"))
Demo online (z datą ustaloną w przeszłości na placu zabaw, nieważne)
s := "Actual time is: "+time.Now().String()
Znajdź więcej informacji w tym poście: Pobierz aktualną datę i godzinę w różnych formatach w golang
Oto przedsmak różnych formatów, które znajdziesz w poprzednim poście:
Jako echo odpowiedzi @ Bactisme, sposób pobierania aktualnego znacznika czasu (na przykład w milisekundach) jest następujący:
msec := time.Now().UnixNano() / 1000000
https://golang.org/src/time/format.go określony Do analizy czas 15
jest używany do godzin, 04
jest używany do minut, 05
do sekund.
Do parsowania Data 11
, Jan
, January
to przez kilka miesięcy, 02
, Mon
, Monday
dla dnia miesiąca, 2006
za rok i oczywiścieMST
dla strefy
Ale możesz również użyć tego układu, który uważam za bardzo prosty. "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