Как создать дневные временные метки - PullRequest
1 голос
/ 22 марта 2020

Мне нужно написать функцию, которая берет метку времени в секундах и преобразует ее в метку времени на основе дня. Например, обе отметки времени 1584875408 (22/03/2020 11:10) и 1584872571 (22/03/2020 10:22) должны быть преобразованы в 1584835200 (22/03/2020 в 12:00).

Я придумал следующую функцию. Помимо того, что это не работает, я думаю, что есть гораздо более умный способ достижения описанного поведения.

func formatTimestamp(t int64) (int64, error) {
    timestamp := time.Unix(t, 0)

    day := timestamp.Format("2006-01-02")

    formatted, err := time.Parse(day, "2006-01-02")
    if err != nil {
        return 0, err
    }

    return formatted.Unix(), nil
}

func main() {
    t, _ := formatTimestamp(1584873099)
    fmt.Println(t)
}

1 Ответ

1 голос
/ 22 марта 2020

Проблема в том, что вы перепутали аргументы на time.Parse.

Это должно быть: formatted, err := time.Parse("2006-01-02", day)

...