2016-04-23 20 views
1

golangの2010-01-23 11:44:20からJan 23 '10 at 11:44に日付形式を変換したいと思います。私はtimeパッケージからいくつかの機能を試しましたが、できませんでした。golangで日付形式を変換するには?

誰かが私にこれを手伝ってもらえますか?

答えて

4

時間パッケージのParseFormatを使用して、希望のテキスト形式に変換することができます。どちらも、フォーマットをかなり理解しやすくするためのパラメータとして必要な書式の参照時間(2006-01-02 15:04:05)を取っています。

dtstr1 := "2010-01-23 11:44:20" 
dt,_ := time.Parse("2006-01-02 15:04:05", dtstr1) 

dtstr2 := dt.Format("Jan 2 '06 at 15:04") 

A playground to test with

1

一つの方法は、
または別の方法は次のように独自のフォーマッタ関数を記述することで、タイム・パッケージの解析およびフォーマット機能を使用することです:

package main 

import (
    "bytes" 
    "fmt" 
    "time" 
) 

//2010-01-23 11:44:20 to Jan 23 '10 at 11:44 
func FormatDateTime(t time.Time) string { 
    var buffer bytes.Buffer 
    buffer.WriteString(t.Month().String()[:3]) 
    buffer.WriteString(fmt.Sprintf(" %2d '%2d at %2d:%2d", t.Day(), t.Year()%100, t.Hour(), t.Minute())) 
    return buffer.String() 
} 

func main() { 
    t := time.Now() 
    str := FormatDateTime(t) 
    fmt.Println(str) //Apr 23 '16 at 11:50 
} 
関連する問題