package utils import ( "strings" "time" ) const ( TimeFormat = "2006-01-02 15:04:05" ZeroTime = "1970-01-01 00:00:00" ) func ParseTime(str string) time.Time { data := []byte(str) if data[0] == '"' && data[len(data)-1] == '"' { data = data[1 : len(data)-1] } dataStr := strings.TrimSpace(string(data)) if dataStr == "" { now, _ := time.ParseInLocation(TimeFormat, ZeroTime, time.Local) return now } var now time.Time if strings.Index(dataStr, "T") > 0 { dataStr = strings.Replace(dataStr, "T", " ", 1) } if len(dataStr) > 19 { dataStr = dataStr[0:19] if strings.Index(dataStr, "000") == 0 { dataStr = ZeroTime } } else if len(dataStr) == 10 { dataStr += " 00:00:00" } else if len(dataStr) == 13 { dataStr += ":00:00" } else if len(dataStr) == 16 { dataStr += ":00" } now, _ = time.ParseInLocation(TimeFormat, dataStr, time.Local) return now }