/
time_parser.go
59 lines (49 loc) · 1.41 KB
/
time_parser.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package commands
import (
"time"
"github.com/pkg/errors"
)
var (
layouts = []string{
"02-01-2006T15:04:05.999999999",
"02-01-2006T03:04:05.999999999PM",
"02-01-2006T03:04:05.999999999 PM",
"02-01-2006T03:04:05.999999999pm",
"02-01-2006T03:04:05.999999999 pm",
"02-01-2006 15:04:05.999999999",
"02-01-2006 03:04:05.999999999PM",
"02-01-2006 03:04:05.999999999 PM",
"02-01-2006 03:04:05.999999999pm",
"02-01-2006 03:04:05.999999999 pm",
"02/01/2006T15:04:05.999999999",
"02/01/2006T03:04:05.999999999PM",
"02/01/2006T03:04:05.999999999 PM",
"02/01/2006T03:04:05.999999999pm",
"02/01/2006T03:04:05.999999999 pm",
"02/01/2006 15:04:05.999999999",
"02/01/2006 03:04:05.999999999PM",
"02/01/2006 03:04:05.999999999 PM",
"02/01/2006 03:04:05.999999999pm",
"02/01/2006 03:04:05.999999999 pm",
"02-01-2006",
"02/01/2006",
"Jan _2 15:04:05.999999999",
"Jan _2 03:04:05.999999999PM",
"Jan _2 03:04:05.999999999 PM",
"Jan _2 03:04:05.999999999pm",
"Jan _2 03:04:05.999999999 pm",
"15:04:05.999999999",
"03:04:05.999999999 PM",
"03:04:05.999999999 pm",
"03:04:05.999999999PM",
"03:04:05.999999999pm",
}
)
func parseTime(input string) (time.Time, error) {
for _, layout := range layouts {
if t, err := time.Parse(layout, input); err == nil {
return t, nil
}
}
return time.Time{}, errors.Errorf("%v does not match with any of the expected time string formats.", input)
}