modify coslight time parse layout
This commit is contained in:
parent
64ea68b47c
commit
5acdd7f8b7
|
|
@ -198,11 +198,19 @@ func ParseComtradeCfg(filePath string) (*ComtradeCfg, error) {
|
||||||
}
|
}
|
||||||
line += uint32(comtradeCfg.Nrates)
|
line += uint32(comtradeCfg.Nrates)
|
||||||
|
|
||||||
|
// init comtrade config time parse layout
|
||||||
|
timeParseLayout := DateTimeLayout
|
||||||
|
firstDataTimeStr := ByteToString(lines[line+comtradeCfg.Total])
|
||||||
|
if len(firstDataTimeStr) < DefaultTimeLayoutLen {
|
||||||
|
timeParseLayout = CosLightDateTimeLayout
|
||||||
|
}
|
||||||
|
|
||||||
// read first data time (dd/mm/yyyy,hh:mm:ss.ssssss)
|
// read first data time (dd/mm/yyyy,hh:mm:ss.ssssss)
|
||||||
if start, err := time.Parse(DateTimeLayout, ByteToString(lines[line+comtradeCfg.Total])); err != nil {
|
if start, err := time.Parse(timeParseLayout, firstDataTimeStr); err != nil {
|
||||||
if strings.Contains(err.Error(), MonthOutOfRange) {
|
if strings.Contains(err.Error(), MonthOutOfRange) {
|
||||||
|
timeParseLayout = DateTimeLayout2
|
||||||
// try to parse date reverse month and day: mm/dd/yyyy
|
// try to parse date reverse month and day: mm/dd/yyyy
|
||||||
if start, err = time.Parse(DateTimeLayout2, ByteToString(lines[line+comtradeCfg.Total])); err != nil {
|
if start, err = time.Parse(timeParseLayout, firstDataTimeStr); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
} else {
|
} else {
|
||||||
comtradeCfg.FirstDataTime = start
|
comtradeCfg.FirstDataTime = start
|
||||||
|
|
@ -218,11 +226,11 @@ func ParseComtradeCfg(filePath string) (*ComtradeCfg, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// read trigger time (dd/mm/yyyy,hh:mm:ss.ssssss)
|
// read trigger time (dd/mm/yyyy,hh:mm:ss.ssssss)
|
||||||
tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(","))
|
triggerTimeStr := ByteToString(lines[line+comtradeCfg.Total])
|
||||||
if trigger, err := time.Parse(DateTimeLayout, ByteToString(bytes.Join(tempList, []byte(",")))); err != nil {
|
if trigger, err := time.Parse(timeParseLayout, triggerTimeStr); err != nil {
|
||||||
if strings.Contains(err.Error(), MonthOutOfRange) {
|
if strings.Contains(err.Error(), MonthOutOfRange) {
|
||||||
// try to parse date reverse month and day
|
// try to parse date reverse month and day
|
||||||
if trigger, err = time.Parse(DateTimeLayout2, ByteToString(bytes.Join(tempList, []byte(",")))); err != nil {
|
if trigger, err = time.Parse(timeParseLayout, triggerTimeStr); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
} else {
|
} else {
|
||||||
comtradeCfg.TriggerTime = trigger
|
comtradeCfg.TriggerTime = trigger
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
package comtrade
|
package comtrade
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
// define len of dd/mm/yyyy,HH:MM:SS.mmmmmm style
|
||||||
|
DefaultTimeLayoutLen = 26
|
||||||
// dd/mm/yyyy,HH:MM:SS.mmmmmm
|
// dd/mm/yyyy,HH:MM:SS.mmmmmm
|
||||||
DateTimeLayout = "02/01/2006,15:04:05.000000"
|
DateTimeLayout = "02/01/2006,15:04:05.000000"
|
||||||
// mm/dd/yyyy,HH:MM:SS.mmmmmm
|
// mm/dd/yyyy,HH:MM:SS.mmmmmm
|
||||||
DateTimeLayout2 = "01/02/2006,15:04:05.000000"
|
DateTimeLayout2 = "01/02/2006,15:04:05.000000"
|
||||||
// mm/dd/yyyy,HH:MM:SS.mmm
|
// mm/dd/yyyy,HH:MM:SS.mmm
|
||||||
CosLightDateTimeLayout = "01/02/2006,15:04:05.000"
|
CosLightDateTimeLayout = "02/01/2006,15:04:05.000"
|
||||||
|
|
||||||
Rcv1991 = 1991
|
Rcv1991 = 1991
|
||||||
Rcv1999 = 1999
|
Rcv1999 = 1999
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue