You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
620 B
Go
40 lines
620 B
Go
package timez
|
|
|
|
import "time"
|
|
|
|
func YmdHiParse(parse string, tOffset int32) (Parse, error) {
|
|
p := NewParse(parse, tOffset)
|
|
return p.YmdHiParse()
|
|
}
|
|
|
|
type Parse struct {
|
|
t time.Time
|
|
parse string
|
|
tOffset int32
|
|
}
|
|
|
|
func NewParse(parse string, tOffset int32) Parse {
|
|
return Parse{
|
|
parse: parse,
|
|
tOffset: tOffset,
|
|
}
|
|
}
|
|
|
|
func (s Parse) YmdHiParse() (Parse, error) {
|
|
t, err := time.ParseInLocation("2006-01-02 15:04", s.parse, Location(s.tOffset))
|
|
if err != nil {
|
|
return Parse{}, err
|
|
}
|
|
|
|
return Parse{
|
|
t: t,
|
|
}, nil
|
|
}
|
|
|
|
func (s Parse) Unix() int64 {
|
|
if s.t.IsZero() {
|
|
return 0
|
|
}
|
|
return s.t.Unix()
|
|
}
|