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

时间:2018-10-08 05:02:02

标签: go time

我在go中使用时间包将时间花费在字符串中,但是有一个问题是,当时间为9:00 AM or 10:00 AM时,下面的代码将在9:00 AM输出为90,并且10:00 AM是100,但是如果有时间9:11AM or 10:11AM,则9:11 AM的输出是911,10:11 AM的输出是1011 10:00 AM,它将以两位数字而不是一位数字来显示分钟。我正在使用的代码是

hours, minutes, _ := time.Now().Clock()
fmt.Println(hours, minutes)

我希望它会产生两位数的结果,例如10:00AM,那么它将给出1000,如果有10:11AM,那么它将给出我1011。 / p>

基本上我想使用:-

将它们转换为字符串
 currUTCTimeInString := strconv.Itoa(hours) + strconv.Itoa(minutes)

有人可以帮我吗?

2 个答案:

答案 0 :(得分:2)

例如,

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)
}

输出:

2300
900
1000

或者,使用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)
}

输出:

900

答案 1 :(得分:1)

您可能应该使用time.Format

time.Now().Format("1504")

请注意,时间包中的参考时间为

Mon Jan 2 15:04:05 -0700 MST 2006

因此,上面的示例代码为您提供了连续的小时数(15)分钟(04)