登录
首页 >  Golang >  Go问答

创建一个基于天的时间戳的方法

来源:stackoverflow

时间:2024-03-21 15:03:28 501浏览 收藏

本文探讨了一种将基于秒的时间戳转换为基于天的时间戳的方法。例如,时间戳 1584875408(代表 2020 年 3 月 22 日上午 11:10)将被转换为 1584835200(代表 2020 年 3 月 22 日上午 12:00)。尽管作者提供了一个函数 formatTimestamp,但它由于 time.Parse 参数的混淆而无法正常工作。

问题内容

我需要编写一个函数,以秒为单位获取时间戳并将其转换为基于天的时间戳。例如,时间戳 1584875408 (22/03/2020 11:10am) 和 1584872571 (22/03/2020 10:22am) 都应转换为 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)
}

解决方案


问题是您在 time.Parse 上混淆了参数。

应该是:formatted, err := time.Parse("2006-01-02", day)

到这里,我们也就讲完了《创建一个基于天的时间戳的方法》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>