我在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)
有人可以帮我吗?
答案 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)