一、數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)間為什么用的是utcnow而不是now
數(shù)據(jù)庫(kù)中存什么時(shí)間,什么格式,都是你的項(xiàng)目需求和你解決需求的設(shè)計(jì)決定的。
datetime.now([tz]):返回一個(gè)表示當(dāng)前本地時(shí)間的datetime對(duì)象,如果提供了參數(shù)tz,則獲取tz參數(shù)所指時(shí)區(qū)的本地時(shí)間;datetime.utcnow():返回一個(gè)當(dāng)前utc時(shí)間的datetime對(duì)象;舉個(gè)例子:
[datetime.datetime.now(),datetime.datetime.utcnow()]
Out[10]:
[datetime.datetime(2016, 7, 15, 9, 54, 22, 512214),
?datetime.datetime(2016, 7, 15, 1, 54, 22, 512214)]
看見(jiàn)了么?和你的本地時(shí)間相差8小時(shí),還記得我們的時(shí)區(qū)么?
實(shí)際上,在我遇到過(guò)的項(xiàng)目中,都是用本地時(shí)間,所以我斗膽猜測(cè),跨時(shí)區(qū)業(yè)務(wù)才會(huì)推薦用utcnow吧。
延伸閱讀:
二、字符集(Character set)是什么
是多個(gè)字符(英文字符,漢字字符,或者其他國(guó)家語(yǔ)言字符)的集合,字符集種類(lèi)較多,每個(gè)字符集包含的字符個(gè)數(shù)不同。
特點(diǎn):
①字符編碼方式是用一個(gè)或多個(gè)字節(jié)表示字符集中的一個(gè)字符
②每種字符集都有自己特有的編碼方式,因此同一個(gè)字符,在不同字符集的編碼方式下,會(huì)產(chǎn)生不同的二進(jìn)制
常見(jiàn)字符集:
ASCII字符集:基于羅馬字母表的一套字符集,它采用1個(gè)字節(jié)的低7位表示字符,高位始終為0。
LATIN1字符集:相對(duì)于ASCII字符集做了擴(kuò)展,仍然使用一個(gè)字節(jié)表示字符,但啟用了高位,擴(kuò)展了字符集的表示范圍。
GBK字符集:支持中文,字符有一字節(jié)編碼和兩字節(jié)編碼方式。
UTF8字符集:Unicode字符集的一種,是計(jì)算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),支持了所有國(guó)家的文字字符,utf8采用1-4個(gè)字節(jié)表示字符。