首页 > 解决方案 > 划分时间。Golang 中的持续时间

问题描述

目前,timeGo 中的包没有 'divide' 功能或类似功能。您可以将 time.Duration 除以其他值,但这需要相当多的转换。有没有简单/明显的方法来划分 time.Duration 由我没有看到的 Go 中的东西?(我知道你可以除以一个数字常量,但我需要在动态的基础上进行。)我计划提交一个问题/功能请求以向time包中添加一个基本的“除法”功能,但我想先在这里问一下,以防我错过了一些简单的方法来进行这种划分。

标签: go

解决方案


打包时间

import "time" 

没有对 Day 或更大单位的定义,以避免在夏令时时区转换之间产生混淆。

要计算 Duration 中的单位数,请除以:

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

要将整数个单位转换为 Duration,请乘以:

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.DurationGotime包文档中描述了除法和乘法。


推荐阅读