2017-04-19 68 views
-7

我有一个表单输入,我认为用户最简单的方法是将日期插入为YYYYMMDD,所以我想知道如何将该用户输入转换为Unix时间?将YYYYMMDD转换为Unix中的时间

import "time" 

func SomeFormPOST(w http.ResponseWriter, r *http.Request) { 
    err := r.ParseForm() 
    // err handling 
    date := r.FormValue("date") 
    unixDate := date.DOWHAT.Unix() 
} 

我想也许我需要使用t, _ = time.Parse(...)但一直没能弄明白..

+0

您是否试过阅读手册? – Flimzy

+2

这有太多的重复,它只是荒谬的。谷歌存在的原因是人。 – RayfenWindspear

+0

我不明白标记为回答的问题是如何相同的,我事先做过Google,以及检查时间文档..可能会有超过一千个人想要完成我所要求的内容为什么你对我的消极态度想要得到更多与Go有关的问题/答案,这将有助于提高其知名度。 – fisker

回答

0

你是正确的,你可以使用time.Parse,其中第一个参数是的布局第二,第二个是你想分析的价值。

这意味着如果您知道要解析的值具有此YYYYMMDD格式,则可以使用参考时间构造布局参数。由于参考时间在文档中指定为Mon Jan 2 15:04:05 -0700 MST 2006,因此您的布局应如下所示:20060102

layout := "20060102" 
t, err := time.Parse(layout, date) 
if err != nil { 
    panic(err) 
} 
fmt.Println(t) 
+0

非常感谢,我记得尝试过类似的东西,但在Unix时间戳之间将它转换回第四个之后,似乎给出了不同的结果..不知道是否因为我写了不同的布局字符串(例如20160319),但它现在似乎工作:) – fisker

+0

没问题,参考时间戳对布局很重要,您必须使用'01 ''作为一个月,'02'作为一天,'2006'作为一年,等等......如果你使用'03'作为月份,它就不会工作。 – mkopriva

+0

啊,这就解释了它:)我认为这是最好的,如果我使用13-31之间的东西作为一天,以便它不能作为本月混淆.. – fisker