一、數據庫存儲時間為什么用的是utcnow而不是now
數據庫中存什么時間,什么格式,都是你的項目需求和你解決需求的設計決定的。
datetime.now([tz]):返回一個表示當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間;datetime.utcnow():返回一個當前utc時間的datetime對象;舉個例子:
[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)]
看見了么?和你的本地時間相差8小時,還記得我們的時區么?
實際上,在我遇到過的項目中,都是用本地時間,所以我斗膽猜測,跨時區業務才會推薦用utcnow吧。
延伸閱讀:
二、字符集(Character set)是什么
是多個字符(英文字符,漢字字符,或者其他國家語言字符)的集合,字符集種類較多,每個字符集包含的字符個數不同。
特點:
①字符編碼方式是用一個或多個字節表示字符集中的一個字符
②每種字符集都有自己特有的編碼方式,因此同一個字符,在不同字符集的編碼方式下,會產生不同的二進制
常見字符集:
ASCII字符集:基于羅馬字母表的一套字符集,它采用1個字節的低7位表示字符,高位始終為0。
LATIN1字符集:相對于ASCII字符集做了擴展,仍然使用一個字節表示字符,但啟用了高位,擴展了字符集的表示范圍。
GBK字符集:支持中文,字符有一字節編碼和兩字節編碼方式。
UTF8字符集:Unicode字符集的一種,是計算機科學領域里的一項業界標準,支持了所有國家的文字字符,utf8采用1-4個字節表示字符。