1. 程式人生 > 程式設計 >Golang中使用Date進行日期格式化(沿用Java風格)

Golang中使用Date進行日期格式化(沿用Java風格)

本文介紹了Golang中使用Date進行日期格式化,分享給大家,具體如下:

Github
https://github.com/noogo/date

Date

Date是一個基於time包裝的一個日期包,通過此包可以快速建立日期、獲取時間戳、毫秒數及最重要的日期格式化,另外你還可以繼續使用time包下的所有函式(除time.Foramt(string)外)你可以通過以下方法快速建立一個Date物件:

  • Now()
  • WithTime(t time.Time)
  • WithTimestamp(timestamp int64)
  • WithMillisecond(millisecond int64)
  • WithDate(year,month,date,hour,minute,second int)

Note:你可以通過Date.Format(String,...bool)方法來對日期進行格式化,日期格式化是按照Java風格實現的,免去了Golang中非常規的格式化方法,這對我們使用日期格式化增加了很大的便利,以下問Java日期格式化參考表:

字母 日期或時間元素 表示 示例
G Era 標誌符 Text AD
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的週數 Number 27
W 月份中的週數 umber 2
D 年中的天數 Number 189
d 月份中的天數 umber 10
F 月份中的星期 umber 2
E 星期中的天數 ext Tuesday; Tue v
a Am/pm 標記 Text PM
H 一天中的小時數(0-23) umber 0
k 一天中的小時數(1-24) umber 24
K am/pm 中的小時數(0-11) umber 0
h am/pm 中的小時數(1-12) umber 12
m 小時中的分鐘數 umber 30
s 分鐘中的秒數 umber 55
S 毫秒數 Number 978
z 時區 General time zone Pacific Standard Time; PST; GMT-08:00
Z 時區 RFC 822 time zone -0800

開始

獲取Date

go get -u github.com/noogo/date

使用Date

// get date
d:=date.Now()
//d:=date.WithTime(time.Now())
//d:=date.WithTimestamp(1586448000)
//d:=date.WithMillisecond(1586448000000)
//d:=date.WithDate(2020,04,29,0)
// get milliseconds
//milliseconds:=date.Millisecond()
// get timestamp
//timestamp:=date.Timestamp()
// date format
ret,err:=d.Format("yyyy-MM-dd HH:mm:ss EEEE",true)
if err!=nil{
  log.Fatalln(err)
}
fmt.Println(ret)

執行結果

2020-04-29 00:13:12 星期三

格式化說明

  • G:保留欄位,不支援格式化
  • 年:當y的連續個數小於4時則顯示縮寫後的年,如2008,則會格式化為08
  • 月:當M的連續個數大於3時則顯示英文單詞月份,如果等於3則顯示英文單詞縮寫,否則顯示數字月份,位數不足用0填充。
  • 對於表格中表示型別為Number型別的按照統一規則顯示對應數值,其餘多餘的格式化字元用0填充,假如當前時間為2020年1月1日,08時08分08秒,那麼mm格式化後的分鐘則為08,mmm格式化後的分鐘則為008依次類推
  • 如果Date.Format(string,...bool)中第二個引數傳true,代表中文模式,此引數控制am/pm及星期數,對應會被格式化為上午/下午和星期一格式。

格式化參結果

令:當前日期為2008-08-18 18:28:38.888

layout result
y 08
yy 08
yyy 08
yyyy 2008
yyyyy 2008
M 08
MM 08
MMM Aug
MMMM August
MMMMM August
w 34
ww 34
www 034
wwww 0034
wwwww 00034
W 4
WW 04
WWW 004
WWWW 0004
WWWWW 00004
D 231
DD 231
DDD 231
DDDD 0231
DDDDD 00231
d 18
dd 18
ddd 018
dddd 0018
ddddd 00018
F 3
FF 03
FFF 003
FFFF 0003
FFFFF 00003
E 星期一(chinese)
EE 星期一(chinese)
EEE 星期一(chinese)
EEEE 星期一(chinese)
EEEEE 星期一(chinese)
a 下午(chinese)
aa 下午(chinese)
aaa 下午(chinese)
aaaa 下午(chinese)
aaaaa 下午(chinese)
E 1(standard)
EE 01(standard)
EEE Mon(standard)
EEEE Monday(standard)
EEEEE Monday(standard)
a PM(standard)
aa PM(standard)
aaa PM(standard)
aaaa PM(standard)
aaaaa PM(standard)
H 18
HH 18
HHH 018
HHHH 0018
HHHHH 00018
k 18
kk 18
kkk 018
kkkk 0018
kkkkk 00018
K 6
KK 06
KKK 006
KKKK 0006
KKKKK 00006
h 6
hh 06
hhh 006
hhhh 0006
hhhhh 00006
m 28
mm 28
mmm 028
mmmm 0028
mmmmm 00028
s 38
ss 38
sss 038
ssss 0038
sssss 00038
S 888
SS 888
SSS 888
SSSS 0888
SSSSS 00888
z CST
zz CST
zzz CST
zzzz CST
zzzzz CST
Z +0800
ZZ +0800
ZZZ +0800
ZZZZ +0800
ZZZZZ +0800

到此這篇關於Golang中使用Date進行日期格式化(沿用Java風格)的文章就介紹到這了,更多相關Golang Date日期格式化內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!