Go implementation of systemd time (man systemd.time
)
In command line applications, it is convenient to use the notation since -1day
, or in 5 hours
. This package takes that string (using systemd time specs) and converts it into time.Duration
. There is also a helper function that can take the raw string time adjustment and a time.Time
(or nil
for time.Now()
) object and apply the adjustment to immutably. See below for usage.
package main
import (
"fmt"
"os"
"time"
"github.com/trstringer/go-systemd-time/pkg/systemdtime"
)
func main() {
now := time.Now()
timeFormat := "3:04 PM on January 2, 2006"
fmt.Printf("Now is %s\n", now.Format(timeFormat))
adjustedTime, err := systemdtime.AdjustTime(now, "2d")
if err != nil {
fmt.Printf("error adjusting time: %v\n", err)
os.Exit(1)
}
fmt.Printf("Adjusted is %s\n", adjustedTime.Format(timeFormat))
/*
Now is 8:38 PM on September 30, 2020
Adjusted is 8:38 PM on October 2, 2020
*/
}
If a bug is found, please write a failing test to uncover the bug.
To run tests, navigate to the root directory and run go test -v ./...
.