Python datetime 格式化字符串:strftime()
Python 的datetime
模塊 其實就是date
和time
模塊的結合, 常見的屬性方法都比較常用
比如: datetime.day
,datetime.month
,datetime.year
分別表示一個datetime
對象的日,月,年;如下
from datetime import datetime dt=datetime.now() #創建一個datetime類對象 print dt.year,dt.month,dt.day ''' 輸出為: 2015 3 8 '''
下面着重記錄一下 另一個方法: 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' ) ''' 輸出如下: -------------------------------------------------------------- 時間:(%Y-%m-%d %H:%M:%S %f): 2015-03-08 23:30:42 181000 時間:(%Y-%m-%d %H:%M:%S %p): 15-03-08 11:30:42 PM 星期縮寫%a: Sun 星期全拼%A: Sunday 月份縮寫%b: Mar 月份全批%B: March 日期時間%c: 03/08/15 23:30:42 今天是這周的第0天 今天是今年的第067天 今周是今年的第10周 今天是當月的第08天 --------------------------------------------------- '''