我想orderDeliveryStartTime通过使用Go中库的Truncate功能减去30分钟time。但它正在减去 30 秒。如何从 a 中减去 30 分钟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))
}
Run Code Online (Sandbox Code Playgroud)
实际结果:
1800000000000
2019-04-11 13:00:30
2019-04-11 13:00:00
预期结果:
1800000000000
2019-04-11 13:00:30
2019-04-11 12:30:30
只需使用该Time.Add()方法,传递-30 * time.Minute:
t2 := orderDeliveryStartTime.Add(-30 * time.Minute)
fmt.Println(t2.Format(layoutTime))
Run Code Online (Sandbox Code Playgroud)
输出(在Go Playground上试试):
2019-04-11 13:00:30
2019-04-11 12:30:30
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |