A GO module
See pkg.go.dev for documentation
Convert strings like "3m", "2w" and "5d".
It can convert to:
- either int values for seconds, milli-, micro- or nanoseconds
- or time.Duration
Invalid strings will return 0 (zero)
If no unit is given it will assume that the value is in seconds
Version 2 uses generics to allow a custom type timeperiod.Period
(type Period string
)
or string as you prefer. This is to clarify that the string is a time period and not just
a string when used in configurations, as a function parameter or similar.
Due to generics it now requires to use go 1.18 or later.
ns
// nanoseconds
us
// microseconds
µs
// microseconds
ms
// milliseconds
s
// seconds
m
// minutes
h
// hours
d
// days
w
// weeks
timeperiod.Duration("5ns")
// 5
timeperiod.Seconds("26w")
// 15724800
timeperiod.Seconds("2d")
// 172800
timeperiod.Seconds("5m")
// 300
timeperiod.Milliseconds("5m")
// 300000
timeperiod.Microconds("1h")
// 3600000000
timeperiod.Nanoseconds("1us")
// 1000
timeperiod.Nanoseconds("1µs")
// 1000