github.com/supragya/TendermintConnector@v0.0.0-20210619045051-113e32b84fb1/_deprecated_chains/cosmos/libs/common/date.go (about) 1 package common 2 3 import ( 4 "strings" 5 "time" 6 7 "github.com/pkg/errors" 8 ) 9 10 // TimeLayout helps to parse a date string of the format YYYY-MM-DD 11 // Intended to be used with the following function: 12 // time.Parse(TimeLayout, date) 13 var TimeLayout = "2006-01-02" //this represents YYYY-MM-DD 14 15 // ParseDateRange parses a date range string of the format start:end 16 // where the start and end date are of the format YYYY-MM-DD. 17 // The parsed dates are time.Time and will return the zero time for 18 // unbounded dates, ex: 19 // unbounded start: :2000-12-31 20 // unbounded end: 2000-12-31: 21 func ParseDateRange(dateRange string) (startDate, endDate time.Time, err error) { 22 dates := strings.Split(dateRange, ":") 23 if len(dates) != 2 { 24 err = errors.New("bad date range, must be in format date:date") 25 return 26 } 27 parseDate := func(date string) (out time.Time, err error) { 28 if len(date) == 0 { 29 return 30 } 31 out, err = time.Parse(TimeLayout, date) 32 return 33 } 34 startDate, err = parseDate(dates[0]) 35 if err != nil { 36 return 37 } 38 endDate, err = parseDate(dates[1]) 39 if err != nil { 40 return 41 } 42 return 43 }