go之如何创建基于日期的时间戳

现男友 阅读:80 2025-06-02 22:19:02 评论:0

我需要编写一个以秒为单位的时间戳并将其转换为基于一天的时间戳的函数。例如,时间戳1584875408(22/03/2020 11:10 am)和1584872571(22/03/2020 10:22 am)都应转换为1584835200(22/03/2020 12:00 am)。

我想出了以下功能。除了它不起作用之外,我认为还有一种更聪明的方法来实现所描述的行为。

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)


标签:日期
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号