日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Go的時(shí)間格式化為什么是2006-01-0215:04:05?

大家好,我是 polarisxu。

韶關(guān)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

沒(méi)有什么是完美的!而且,有些東西,有些人認(rèn)為好,有些人認(rèn)為很糟糕。Go 也是如此。喜歡 Go 語(yǔ)言的朋友,大概率對(duì)其中某些地方不喜歡。比如,你喜歡 Go 中時(shí)間格式化固定的 2006-01-02 15:04:05 -0700 嗎?為什么是這么一個(gè)時(shí)間?今天來(lái)一探究竟!

01 新手的困惑

無(wú)論是各種群里還是網(wǎng)上搜一下,包括國(guó)外的,對(duì) 2006-01-02 15:04:05 -0700 都很困惑。

一般的困擾主要有:

  • 不知道只能固定要這個(gè)時(shí)間,換其他的,出來(lái)的結(jié)果莫名其妙,然后一臉懵逼;
  • 為什么沒(méi)有像其他語(yǔ)言一樣,yyyy-mm-dd 這樣的形式?
  • 這個(gè)時(shí)間有什么特殊意義嗎?為什么挑這么個(gè)時(shí)間,完全記不住;

這很正常,畢竟這一點(diǎn)上,Go 很另類,也可以說(shuō)很“奇葩”。甚至有人注冊(cè)了一個(gè)域名:http://fuckinggodateformat.com/,我也是醉了。。。

但是這真的不好?

02 為什么這么設(shè)計(jì)?

為什么選擇這個(gè)時(shí)間?不少人有這樣的疑問(wèn)。有人猜測(cè)是 Go 項(xiàng)目啟動(dòng)的時(shí)間等。但仔細(xì)研究,發(fā)現(xiàn) Go Team 還是用心良苦,目的是解決大家記憶問(wèn)題。

比如常規(guī)的 ymd 格式,以 PHP 為例,一般這樣 Y-m-d H:i:s,輸出類似:2021-08-03 09:30:00,但如果我想輸出:21-8-4 9:30:00,你不查手冊(cè),能寫出來(lái)嗎?你看看 PHP 文檔中關(guān)于 date 格式化的說(shuō)明,頭有點(diǎn)大,竟然那么多,雖然常用的形式,大部分人都記得,但遇到不怎么常用的,就得查手冊(cè)了。

反觀 Go 語(yǔ)言,它直接使用一個(gè)具體的時(shí)間來(lái)當(dāng)做格式化字符串,需要什么格式,改這個(gè)時(shí)間格式即可。比如上面的例子,常規(guī)方式:2006-01-02 15:04:05,而 21-8-4 9:30:00 這種格式,只需要對(duì)應(yīng)的改變值即可:06-1-2 3:04:05。而且,我查了下,PHP 沒(méi)法表示沒(méi)有前導(dǎo)零的分鐘數(shù)和秒數(shù),而 Go 很容易實(shí)現(xiàn)。很顯然,Go 的方式是更合理、更易用的,對(duì)于各種變化,也能夠更自如的應(yīng)對(duì)。

只不過(guò),很多人對(duì)這個(gè)具體的時(shí)間覺(jué)得記不住。這一點(diǎn),Go 官方也考慮到了。畢竟采用特殊的時(shí)間,目的就是為了解決大家記憶問(wèn)題,因此要確保這個(gè)特殊時(shí)間也好記。Go 是這么設(shè)計(jì)的:

 
 
 
 
  1. 1: month (January, Jan, 01, etc)
  2. 2: day
  3. 3: hour (15 is 3pm on a 24 hour clock)
  4. 4: minute
  5. 5: second
  6. 6: year (2006)
  7. 7: timezone (GMT-7 is MST)

剛好是 1 2 3 4 5 6 7,據(jù)此進(jìn)行變化即可。

比如官方定義的常量:

 
 
 
 
  1. const (
  2.     ANSIC       = "Mon Jan _2 15:04:05 2006"
  3.     UnixDate    = "Mon Jan _2 15:04:05 MST 2006"
  4.     RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"
  5.     RFC822      = "02 Jan 06 15:04 MST"
  6.     RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
  7.     RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
  8.     RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
  9.     RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
  10.     RFC3339     = "2006-01-02T15:04:05Z07:00"
  11.     RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
  12.     Kitchen     = "3:04PM"
  13. )

按 ANSIC 標(biāo)準(zhǔn)的日期格式,月、日、時(shí)、分、秒、年,最后加 MST 時(shí)區(qū)。對(duì)應(yīng)就是 1 2 3 4 5 6 7。同時(shí)還可以隨意加星期幾。

發(fā)現(xiàn)沒(méi)有?圍繞著 1 2 3 4 5 6 7 隨意變化,真的不要太爽。我相信你用習(xí)慣了會(huì)發(fā)現(xiàn) Go 這個(gè)設(shè)計(jì)真的太好了。

03 總結(jié)

Go 的設(shè)計(jì)原則之一:大道至簡(jiǎn)。盡量簡(jiǎn)介,讓大家開心編程。我認(rèn)為這個(gè)格式化時(shí)間的設(shè)計(jì)也體現(xiàn)了這一點(diǎn),他們?cè)O(shè)計(jì)的很用心。

知曉了為什么這么設(shè)計(jì),我相信你看完這篇文章會(huì)從此愛(ài)上 Go 的時(shí)間格式化形式。


名稱欄目:Go的時(shí)間格式化為什么是2006-01-0215:04:05?
標(biāo)題URL:http://www.dlmjj.cn/article/dphgpeg.html