2 回答

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
您可以通過(guò)切片輸入字符串并以不同的順序組裝各個(gè)部分來(lái)完成此操作:
func transform(s string) string {
d, m, y := s[:2], s[3:5], s[6:]
return y + "-" + m + "-" + d
}
注意:上面的函數(shù)不會(huì)驗(yàn)證輸入,如果輸入短于 6 個(gè)字節(jié),它可能會(huì)出現(xiàn)錯(cuò)誤。
如果您需要輸入驗(yàn)證(包括日期驗(yàn)證),您可以使用該time包來(lái)解析日期,并將其格式化為您期望的輸出:
func transform2(s string) (string, error) {
t, err := time.Parse("02.01.2006", s)
if err != nil {
return "", err
}
return t.Format("2006-01-02"), nil
}
測(cè)試以上功能:
fmt.Println(transform("31.12.2019"))
fmt.Println(transform2("31.12.2019"))
輸出(在 Go Playground 上嘗試一下):
2019-12-31
2019-12-31 <nil>

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
正則表達(dá)式可能有點(diǎn)矯枉過(guò)正,因?yàn)槟腥绱嗣鞔_定義的輸入。這個(gè)怎么樣:
var dmy = strings.Split("31.12.2019",".") var mdy = []string{dmy[1],dmy[0],dmy[2]} fmt.Println(strings.Join(mdy, "-"))
https://play.golang.org/p/Ak3TlCAGHUv
- 2 回答
- 0 關(guān)注
- 191 瀏覽
添加回答
舉報(bào)