2016-02-07 20:48:43 +00:00
|
|
|
package main
|
|
|
|
|
2016-02-08 02:51:41 +00:00
|
|
|
import "time"
|
2016-02-07 20:48:43 +00:00
|
|
|
|
|
|
|
import "C"
|
|
|
|
|
2016-02-10 18:31:31 +00:00
|
|
|
var times []string = []string{
|
|
|
|
"2006-01-02T15:04:05.000000-07:00",
|
|
|
|
"2006-01-02T15:04:05-07:00",
|
|
|
|
time.RFC3339,
|
|
|
|
"2006-01-02T15:04-7000",
|
|
|
|
"2006-01-02T15:04:05-0700",
|
|
|
|
"2006-01-02T15:04:05.000000",
|
|
|
|
}
|
2016-02-07 20:48:43 +00:00
|
|
|
|
2016-02-10 18:31:31 +00:00
|
|
|
func tryTimes(inp string) *time.Time {
|
|
|
|
var t time.Time
|
|
|
|
var err error
|
2016-02-07 20:48:43 +00:00
|
|
|
|
2016-02-10 18:31:31 +00:00
|
|
|
for _, fmtString := range times {
|
|
|
|
t, err = time.Parse(fmtString, inp)
|
|
|
|
if err == nil {
|
|
|
|
break
|
2016-02-07 20:48:43 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-02-10 18:31:31 +00:00
|
|
|
return &t
|
|
|
|
}
|
|
|
|
|
|
|
|
//export fixTime
|
|
|
|
func fixTime(inp *C.char) *int64 {
|
|
|
|
gostr := C.GoString(inp)
|
|
|
|
|
|
|
|
t := tryTimes(gostr)
|
|
|
|
|
|
|
|
res := (*t).Unix()
|
2016-02-07 20:48:43 +00:00
|
|
|
|
|
|
|
return &res
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {}
|