簡體   English   中英

划分時間。 Golang 中的 Duration

[英]Dividing a time.Duration in Golang

目前,Go 中的time包沒有 'divide' 功能或類似的功能。 您可以將 time.Duration 除以其他值,但這需要進行大量轉換。 有沒有什么簡單/明顯的方法可以用 Go 中我沒有看到的東西來划分 time.Duration? (我知道你可以除以一個數字常數,但我需要在動態基礎上做。)我計划提交一個問題/功能請求,向time包添加一個基本的“除法”函數,但我想要先在這里問,以防萬一我錯過了一些簡單的方法來進行這種划分。

打包時間

import "time"

為了避免夏令時時區轉換之間的混淆,沒有對 Day 或更大單位的定義。

要計算 Duration 中的單位數,請除以:

 second := time.Second fmt.Print(int64(second/time.Millisecond)) // prints 1000

要將整數單位轉換為持續時間,請乘以:

 seconds := 10 fmt.Print(time.Duration(seconds)*time.Second) // prints 10s const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Millisecond Minute = 60 * Second Hour = 60 * Minute )

類型 持續時間

Duration 將兩個瞬間之間經過的時間表示為 int64 納秒計數。 該表示將最大可表示持續時間限制為大約 290 年。

 type Duration int64

time.Duration除法和乘法在 Go time包文檔中進行了描述。

如果除數是 2 的倍數,則可以使用 shift 代替,而無需進行任何強制轉換:

package main

import (
   "fmt"
   "time"
)

func main() {
   n := 1
   d := time.Minute >> n
   fmt.Println(d) // 30s
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM