我在 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)
任何人都可以帮助我。
例如,
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)
您可能应该使用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)
归档时间: |
|
查看次数: |
5605 次 |
最近记录: |