Как лучше всего получить текущую метку времени в Go и преобразовать ее в строку? Мне нужны дата и время, например. ГГГГММДДччммсс формат.
Получить текущее время в виде форматированной строки в Go?
Ответы (8)
Используйте функцию time.Now()
и _ 2_.
t := time.Now()
fmt.Println(t.Format("20060102150405"))
распечатывает 20110504111515
, или, по крайней мере, это было несколько минут назад. (Я использую летнее время по восточному времени.) В константах < / a> определено во временном пакете.
Вы можете использовать time.Now().UTC()
, если вы предпочитаете UTC, а не местный часовой пояс.
Kitchen
(= "3:04PM"
)
- person tux21b; 04.05.2011
Все остальные ответы очень неуместны для тех, кто пришел из Google и ищет "временную метку на ходу"! ГГГГММДДччммсс не является «отметкой времени».
Чтобы получить временную метку текущей даты (количество секунд с января 1970 г.), правильной функцией является .Unix (), и он действительно возвращает целое число
Get current time as formatted string in Go?
. Надеюсь, кто-нибудь это одобрит.
- person akki; 27.11.2019
Для удобства чтения лучше всего использовать константы 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
- person Chris McKee; 02.10.2019
Используйте time.Now () и time.Format () функции (поскольку time.LocalTime () больше не существует в Go 1.0.3)
t := time.Now()
fmt.Println(t.Format("20060102150405"))
Онлайн-демонстрация (с датой, установленной в прошлом на игровой площадке, неважно)
s := "Actual time is: "+time.Now().String()
- person Michael; 09.03.2014
Дополнительную информацию можно найти в этом сообщении: Получить текущую дату и время в различных форматах в голанге
Это вкус различных форматов, которые вы найдете в предыдущем посте:
Как отголосок ответа @Bactisme, способ получения текущей метки времени (например, в миллисекундах):
msec := time.Now().UnixNano() / 1000000
Ресурс: https://gobyexample.com/epoch
https://golang.org/src/time/format.go указано для анализа время 15
используется для часов, 04
используется для минут, 05
для секунд.
Для разбора Date 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())