123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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
- }
|