Python datatime 格式轉換,插入MySQL數據庫
zoerywzhou@163.com
http://www.cnblogs.com/swje/
作者:Zhouwan
2017-11-22
我們都知道python的%通配符有:%d(整型),%s(字符型),%f(浮點型)。那么關於時間date的類型呢?
比如:我的項目要往數據庫中插入create_time和update_time,那就勢必要引用現在的系統時間,經過大量的查找,終於發現往python是沒有對應時間datetime的相關通配符的,那么我們要怎么實現呢。
其實很簡單,我們只需要把datetime轉換成字符串類型的就行
from datetime import datetime dt = datetime.now() # 將datatime類型的數據轉換為字符串類型的數據,用%s插入到數據庫中。 s = str(createTime)[:-7]
print s print type(s) # 將字符串類型的數據從數據庫讀出來后,轉換為datetime.datatime 類型的數據 date = datetime.strptime(s,'%Y-%m-%d %H:%M:%S') print date print type(date)
Links:
-
Python documentation for
strftimeformat mask: Python 2, Python 3 -
strftime.org is also a really nice reference for strftime
Notes:
strptime= "string parse time"strftime= "string format time"
着重記錄一下 另一個方法: strftime() 用來格式化datetime 對象, 有時候會十分的方便:
先看一下格式: datetime.strftime('%' ) %后面跟一個控制字符,如下:
| 格式符 | 說明 |
|---|---|
| %a | 星期的英文單詞的縮寫:如星期一, 則返回 Mon |
| %A | 星期的英文單詞的全拼:如星期一,返回 Monday |
| %b | 月份的英文單詞的縮寫:如一月, 則返回 Jan |
| %B | 月份的引文單詞的縮寫:如一月, 則返回 January |
| %c | 返回datetime的字符串表示,如03/08/15 23:01:26 |
| %d | 返回的是當前時間是當前月的第幾天 |
| %f | 微秒的表示: 范圍: [0,999999] |
| %H | 以24小時制表示當前小時 |
| %I | 以12小時制表示當前小時 |
| %j | 返回 當天是當年的第幾天 范圍[001,366] |
| %m | 返回月份 范圍[0,12] |
| %M | 返回分鍾數 范圍 [0,59] |
| %P | 返回是上午還是下午–AM or PM |
| %S | 返回秒數 范圍 [0,61]。。。手冊說明的 |
| %U | 返回當周是當年的第幾周 以周日為第一天 |
| %W | 返回當周是當年的第幾周 以周一為第一天 |
| %w | 當天在當周的天數,范圍為[0, 6],6表示星期天 |
| %x | 日期的字符串表示 :03/08/15 |
| %X | 時間的字符串表示 :23:22:08 |
| %y | 兩個數字表示的年份 15 |
| %Y | 四個數字表示的年份 2015 |
| %z | 與utc時間的間隔 (如果是本地時間,返回空字符串) |
| %Z | 時區名稱(如果是本地時間,返回空字符串) |
from datetime import datetime dt = datetime.now() print '時間:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( '%Y-%m-%d %H:%M:%S %f' ) print '時間:(%Y-%m-%d %H:%M:%S %p): ' , dt.strftime( '%y-%m-%d %I:%M:%S %p' ) print '星期縮寫%%a: %s ' % dt.strftime( '%a' ) print '星期全拼%%A: %s ' % dt.strftime( '%A' ) print '月份縮寫%%b: %s ' % dt.strftime( '%b' ) print '月份全批%%B: %s ' % dt.strftime( '%B' ) print '日期時間%%c: %s ' % dt.strftime( '%c' ) print '今天是這周的第%s天 ' % dt.strftime( '%w' ) print '今天是今年的第%s天 ' % dt.strftime( '%j' ) print '今周是今年的第%s周 ' % dt.strftime( '%U' ) print '今天是當月的第%s天 ' % dt.strftime( '%d' )
