如何使用go获取两位数的当前小时和分钟?

mis*_*sha 4 time go

我在 go 中使用 time 包将时间转换为字符串,但有一个问题是,当时间到时9:00 AM or 10:00 AM,下面的代码将输出 9:00AM90和 10:00AM100但如果有时间,9:11AM or 10:11AM则输出对于 9:11AM911和对于 10:11AM 是1011问题是如果有 10:00AM 那么它会给出两位数的分钟数而不是一位数。我正在使用的代码是

hours, minutes, _ := time.Now().Clock()
fmt.Println(hours, minutes)
Run Code Online (Sandbox Code Playgroud)

我希望它会产生两位数的结果,10:00AM然后它会给出1000,如果有,10:11AM那么它会给我1011

基本上我想使用以下方法将它们转换为字符串:-

 currUTCTimeInString := strconv.Itoa(hours) + strconv.Itoa(minutes)
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我。

pet*_*rSO 5

例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    hours, minutes, _ := time.Now().Clock()
    currUTCTimeInString := fmt.Sprintf("%d%02d", hours, minutes)
    fmt.Println(currUTCTimeInString)
    hours, minutes = 9, 0
    currUTCTimeInString = fmt.Sprintf("%d%02d", hours, minutes)
    fmt.Println(currUTCTimeInString)
    hours, minutes = 10, 0
    currUTCTimeInString = fmt.Sprintf("%d%02d", hours, minutes)
    fmt.Println(currUTCTimeInString)
}
Run Code Online (Sandbox Code Playgroud)

输出:

2300
900
1000
Run Code Online (Sandbox Code Playgroud)

或者,使用strconv

package main

import (
    "fmt"
    "strconv"
)

func main() {
    hours, minutes := 9, 00
    h := strconv.Itoa(hours)
    m := strconv.Itoa(minutes)
    if minutes < 10 {
        m = "0" + m
    }
    hm := h + m
    fmt.Println(hm)
}
Run Code Online (Sandbox Code Playgroud)

输出:

900
Run Code Online (Sandbox Code Playgroud)


sse*_*lla 5

您可能应该使用time.Format

time.Now().Format("1504")
Run Code Online (Sandbox Code Playgroud)

注意时间包中的参考时间是

Mon Jan 2 15:04:05 -0700 MST 2006
Run Code Online (Sandbox Code Playgroud)

因此上面的示例代码为您提供了串联的小时(15)分钟(04)