24 lines
483 B
Go
24 lines
483 B
Go
package firmware
|
|
|
|
import "time"
|
|
|
|
type DateTime uint32
|
|
|
|
func (dt DateTime) Time() time.Time {
|
|
high := uint16(dt >> 16)
|
|
low := uint16(dt)
|
|
|
|
year := ((high >> 9) & 127) + 1980
|
|
month := (high >> 5) & 15
|
|
day := high & 31
|
|
hours := (low >> 11) & 31
|
|
minutes := (low >> 5) & 63
|
|
seconds := (low & 31) * 2
|
|
|
|
return time.Date(int(year), time.Month(month), int(day), int(hours), int(minutes), int(seconds), 0, time.UTC)
|
|
}
|
|
|
|
func (dt DateTime) String() string {
|
|
return dt.Time().String()
|
|
}
|