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)
|
||||
|
||||
// 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)
|
||||
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) {
|
||||
timeParseLayout = DateTimeLayout2
|
||||
// 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
|
||||
} else {
|
||||
comtradeCfg.FirstDataTime = start
|
||||
|
|
@ -218,11 +226,11 @@ func ParseComtradeCfg(filePath string) (*ComtradeCfg, error) {
|
|||
}
|
||||
|
||||
// read trigger time (dd/mm/yyyy,hh:mm:ss.ssssss)
|
||||
tempList = bytes.Split(lines[line+comtradeCfg.Total], []byte(","))
|
||||
if trigger, err := time.Parse(DateTimeLayout, ByteToString(bytes.Join(tempList, []byte(",")))); err != nil {
|
||||
triggerTimeStr := ByteToString(lines[line+comtradeCfg.Total])
|
||||
if trigger, err := time.Parse(timeParseLayout, triggerTimeStr); err != nil {
|
||||
if strings.Contains(err.Error(), MonthOutOfRange) {
|
||||
// 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
|
||||
} else {
|
||||
comtradeCfg.TriggerTime = trigger
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package comtrade
|
||||
|
||||
const (
|
||||
// define len of dd/mm/yyyy,HH:MM:SS.mmmmmm style
|
||||
DefaultTimeLayoutLen = 26
|
||||
// dd/mm/yyyy,HH:MM:SS.mmmmmm
|
||||
DateTimeLayout = "02/01/2006,15:04:05.000000"
|
||||
// mm/dd/yyyy,HH:MM:SS.mmmmmm
|
||||
DateTimeLayout2 = "01/02/2006,15:04:05.000000"
|
||||
// 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
|
||||
Rcv1999 = 1999
|
||||
|
|
|
|||
Loading…
Reference in New Issue