Compare commits
No commits in common. "b67d1ec77bb6a215f9e5924b36cc993d6555165b" and "24cf7fd4ccfe23de6a7bf3e80b4346b065e42cc1" have entirely different histories.
b67d1ec77b
...
24cf7fd4cc
26
helper.go
26
helper.go
@ -6,36 +6,10 @@ import (
|
||||
|
||||
// Standard
|
||||
"time"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
var rxpTimezone *regexp.Regexp
|
||||
|
||||
func init() {
|
||||
rxpTimezone = regexp.MustCompile(`(\d\d)(\d\d)$`)
|
||||
}
|
||||
|
||||
func stringToTime(strTime string) (t time.Time, err error) {// {{{
|
||||
// `date` command %z gives timezone like +0200 instead of +02:00.
|
||||
// This can easily be fixed here, not requiring all scripts to be fixed.
|
||||
t, err = time.Parse(time.RFC3339, strTime)
|
||||
if err != nil {
|
||||
// Check for aforementioned problem.
|
||||
parseError, ok := err.(*time.ParseError)
|
||||
if ok && parseError != nil && parseError.LayoutElem == "Z07:00" {
|
||||
// Insert the missing colon according to RFC 3339 and try again.
|
||||
patchedTimeStr := rxpTimezone.ReplaceAllString(strTime, `$1:$2`)
|
||||
t, err = time.Parse(time.RFC3339, patchedTimeStr)
|
||||
}
|
||||
|
||||
// Couldn't convert to time.ParseError or the retry
|
||||
// failed. Either way, an error occurs.
|
||||
if err != nil {
|
||||
err = werr.Wrap(err).WithData(strTime)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}// }}}
|
||||
func parseHTMLDateTime(str string, dflt time.Time) (t time.Time, err error) {
|
||||
|
Loading…
Reference in New Issue
Block a user