I want to subtract 30 minutes from orderDeliveryStartTime
by using the Truncate
function of the time
library in Go. But it's subtracting 30 seconds instead. How can I subtract exactly 30 minutes from a time.Time
?
package main
import (
"fmt"
"time"
)
func main() {
var pickingTimeConfig int
pickingTimeConfig = 30
layoutTime := "2006-01-02 15:04:05"
pickingTime := time.Duration(pickingTimeConfig) * time.Minute
fmt.Println(pickingTime.Nanoseconds())
vcmTimeLocation := time.FixedZone("UTC+7", 25200)
orderDeliveryStartTime := time.Date(2019, 4, 11, 13, 0, 30, 0, vcmTimeLocation)
fmt.Println(orderDeliveryStartTime.Format(layoutTime))
fmt.Println(orderDeliveryStartTime.Truncate(pickingTime).Format(layoutTime))
}
Actual Result:
1800000000000
2019-04-11 13:00:30
2019-04-11 13:00:00
Expected Result:
1800000000000
2019-04-11 13:00:30
2019-04-11 12:30:30