栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

解析非“标准”格式的日期/时间字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解析非“标准”格式的日期/时间字符串

time.Parse正在寻找一些关键值。

通过更改:

test, err := time.Parse("10/15/1983", "10/15/1983")

test, err := time.Parse("01/02/2006", "10/15/1983")

解析器将识别出它。

这是操场上修改后的代码。

package mainimport "fmt"import "time"func main() {    test, err := time.Parse("01/02/2006", "10/15/1983")    if err != nil {        panic(err)    }    fmt.Println(test)}

您可以利用src / pkg / time /
format.go
文件中的常量列表来创建自己的解析格式。

const (    stdLongMonth      = "January"    stdMonth          = "Jan"    stdNumMonth       = "1"    stdZeroMonth      = "01"    stdLongWeekDay    = "Monday"    stdWeekDay        = "Mon"    stdDay = "2"    stdUnderDay       = "_2"    stdZeroDay        = "02"    stdHour= "15"    stdHour12         = "3"    stdZeroHour12     = "03"    stdMinute         = "4"    stdZeroMinute     = "04"    stdSecond         = "5"    stdZeroSecond     = "05"    stdLongYear       = "2006"    stdYear= "06"    stdPM  = "PM"    stdpm  = "pm"    stdTZ  = "MST"    stdISO8601TZ      = "Z0700"  // prints Z for UTC    stdISO8601ColonTZ = "Z07:00" // prints Z for UTC    stdNumTZ          = "-0700"  // always numeric    stdNumShortTZ     = "-07"    // always numeric    stdNumColonTZ     = "-07:00" // always numeric)

因此,只要您的格式指定年份,就应使用“ 06”或“ 2006”完成,用“ 05”或“ 5”指定秒,并在“ MST”,“ Z0700”,“
Z07:00”中指定时区”,“-0700”,“-07”或“ -07:00”。如果您引用常量列表,则可以将需要解析的任何标准格式组合在一起。

例如,如果要以“
通用日志格式”(Apache的日志文件)格式解析日期/时间,可以通过将以下字符串

time.Parse()
作为
布局 参数传递来实现。

"02/Jan/2006:15:04:05 -0700"

“ 02”表示月份的日期字段,“ Jan”表示月份的名称字段,“ 2006”表示年份的字段,“ 15”表示24小时格式的一天中的小时字段,“
04”表示分钟的字段, “ 05”表示秒字段,“-0700”表示时区字段。

该格式将解析当前的PST时间:

31/Dec/2012:15:32:25 -0800

因此,

time.Parse()
调用将如下所示:

test, err := time.Parse("02/Jan/2006:15:04:05 -0700", "31/Dec/2012:15:32:25 -0800")


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号