Go 找不到输入时间的格式

Go 找不到输入时间的格式,go,time,Go,Time,我正在创建一个Go应用程序,用户可以按以下任何格式输入时间: Default Layout: 2009-11-10 23:00:00 +0000 UTC m=+0.000000001 US Layout: November 10, 2009 ISO Layout: 2020-02-10 UNIX Time: 1581422196084 有没有办法找出输入时间的格式?我唯一能找到的是如何将时间从一种格式转换为另一种格式,但在查找现有的时间格式方面却无能为

我正在创建一个Go应用程序,用户可以按以下任何格式输入时间:

Default Layout:  2009-11-10 23:00:00 +0000 UTC m=+0.000000001

US Layout:       November 10, 2009

ISO Layout:      2020-02-10

UNIX Time:       1581422196084
有没有办法找出输入时间的格式?我唯一能找到的是如何将时间从一种格式转换为另一种格式,但在查找现有的时间格式方面却无能为力


我能想到的一种可能的方法是为所有时间格式添加正则表达式。但是,在实现它之前,我想确保没有用于此的Go方法。

您可以决定需要支持哪些布局,即Go布局():

还有一个函数叫做: Parse(布局,值字符串)(time,error),其中如果输入时间不支持布局,则error不是nil

比如说,我想支持ANSIC和UnixDate,我可以做以下工作:

t, err := time.Parse(time.ANSIC, inputTime)
if err == nil {
return t
}

t, err = time.Parse(time.UnixDate, inputTime)
if err == nil {
return t
}
显然,代码结构中的一些代码优化可以在这里完成,但这将比使用正则表达式更有效


希望这有帮助

@rahussatal如果有帮助,你能投票接受答案吗?谢谢,我收到了一个错误的代码-嘿@Rahussatal,这应该是工作,时间是一个保留字,编辑了我的答案:希望它有帮助。
t, err := time.Parse(time.ANSIC, inputTime)
if err == nil {
return t
}

t, err = time.Parse(time.UnixDate, inputTime)
if err == nil {
return t
}