簡體   English   中英

如何在Go中格式化此字符串

[英]How to format this string in Go

這是我的程序

package main

import "fmt"
import "time"
import "strconv"
import "strings"

func main() {

    t := time.Date(2016, 10, 30, 14, 0, 0, 0, time.UTC) 


    year, month, day := t.Date()          
    hr := t.Hour()  

    s := []string{strconv.Itoa(year), strconv.Itoa(int(month)), strconv.Itoa(day)}
    date := strings.Join(s, "")

    s = []string{date, strconv.Itoa(hr)}
    date = strings.Join(s, "_")
    fmt.Println(date)       

}

去操場

輸出是

20161030_14

如果我更換

t := time.Date(2016, 10, 30, 14, 0, 0, 0, time.UTC)

t := time.Date(2016, 6, 3, 9, 0, 0, 0, time.UTC)

那么輸出是

201663_9

但我希望它能輸出

20160603_09

也就是說,月份,日期和小時都應為兩個字符,並可能在前面加上0 我怎樣才能做到這一點?

或者,如果您是我,那么實現相同功能的程序是什么?

謝謝。

使用時間包提供的格式:

https://play.golang.org/p/qIZ58CJqZa

t := time.Date(2016, 6, 3, 9, 0, 0, 0, time.UTC)
fmt.Println(t.Format("20060102_15"))

從時間包文檔中參考時間格式字符串:

布局中使用的參考時間是特定時間:

 Mon Jan 2 15:04:05 MST 2006 

這是Unix時間1136239445。由於MST是GMT-0700,因此參考時間可以認為是

 01/02 03:04:05PM '06 -0700 

要定義自己的格式,請寫下參考時間,以哪種方式格式化; 有關示例,請參見ANSIC,StampMicro或Kitchen等常數的值。 該模型將演示參考時間的外觀,以便Format和Parse方法可以將相同的轉換應用於一般時間值。

在格式字符串中,下划線_表示如果后面的數字(一天)有兩位數字,可以用一位數字代替空格。 與固定寬度的Unix時間格式兼容。

小數點后跟一個或多個零表示小數秒,打印到給定的小數位數。 小數點后跟一個或多個9代表一個小數秒,打印到給定的小數位數,並刪除了尾隨的零。 解析時(僅),即使布局不表示其存在,輸入也可能在秒字段之后立即包含分數秒字段。 在這種情況下,小數點后跟最大的數字序列被解析為小數秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM