??????? 今天在弄個自動關機小腳本的時候,遇到了時間轉換的問題,也難怪,以前沒學過,
不能怪我不會哦!
??????? 首先,先學會打印出當前時間的幾種方式
??????? 參考開源社區: ? http://my.oschina.net/u/1032854/blog/198179#OSC_h1_3
??????? 菜鳥編程: ? http://www.runoob.com/python/python-date-time.html
?
1. time.ctime()函數—輸出固定的日期格式
1 from time import ctime 2 3 # 該函數只能以 " 星期 月 日 時:分:秒 年 " 的格式顯示日期 4 print ctime()
2. time.localtime()函數—同time.ctime()都是按固定順序輸出日期
1 from time import localtime 2 3 # 也是以固定順序輸出—"年 月 日 時:分:秒" 4 print "%d/%d/%d %d:%d:%d" % localtime()[0:6]
3. datetime.datetime—輸出固定的日期格式
【不過是精確到微秒10的-6方秒】
1 from datetime import datetime 2 3 # 以年-月-日 時:分:秒的格式顯示 4 # print datetime.now() 5 print datetime.today()
4. time.strftime()函數—同上
1 from time import strftime 2 3 # 格式化成 2016-08-31 10:53:42的形式 4 print strftime("%Y-%m-%d %H:%M:%S")
當然,你也可以這樣格式化日期


from time import strftime# 格式化成 Wed Aug 10:58:25 2016 形式 print strftime("%a %b %H:%M:%S %Y")
在這里,我們要用到 "年/月/日 時:分:秒" 的格式, 所以就選擇后者time.strftime()!
?
-|---->-----------------------------------------------------------------------------------------------------<<<---
在開始前,有必要給大家介紹下python中時間日期格式化符號:
- %y 兩位數的年份表示(00-99)
- %Y 四位數的年份表示(000-9999)
- %m 月份(01-12)
- %d 月內中的一天(0-31)
- %H 24小時制小時數(0-23)
- %I 12小時制小時數(01-12)
- %M 分鐘數(00=59)
- %S 秒(00-59)
1. 字符串(string)轉化為datetime.datetime
這里我們用到datetime.datetime.strptime()


1 # 字符串轉化為datetime.datetime 2 import datetime 3 4 str = "2016/8/31" 5 6 # Y:(Year)年, m:(month)月, d:(day)日 7 dt = datetime.datetime.strptime(str, "%Y/%m%d") 8 pritn dt
2. datetime.datetime轉化為時間戳
大部分語言里的時間戳是從格林尼治的1970年1月1日子夜(0點)到現在的總毫秒數,不過在python里則
是總秒數,由于我們是東八區,所以對我們來說是從8點開始算起的,要查看起始時間,可以用上面說
到的time.ctime(0)函數! ! !


1 # datetime.datetime 轉化為時間戳 2 3 # str轉化為datetime.datetime 4 str = "2016/8/31" 5 dt = datetime.datetime.strptime(str, "%Y/%m/%d") 6 7 # datetime.datetime轉化為時間戳 8 time.mktime(dt.timetuple())
3. 時間戳轉化為字符串


1 # 時間戳轉化為字符串 2 3 import time 4 import datetime 5 6 # str轉為datetime.datetime 7 str = "2016/8/31" 8 dt = datetime.datetime.strptime(str, "%Y/%m/%d") 9 10 # str 轉為時間戳 11 time_stamp = time.mktime(dt.timetuple()) 12 13 # 時間戳轉為字符串 14 str = time.strftime("%Y/%m/%d", time.localtime(time_stamp)) 15 16 print str
也許大家看了上面的介紹會覺得好像也就這樣,弄不出點什么好玩的東東,那你就錯了,還記得前面說的自動關機的腳本么 ?
下一篇就帶大家實現這個功能!