Python內置庫:time和datetime(時間和日期)


time模塊

  time模塊通常用來操作時間戳信息(各種“秒”),常用的方法有:

  • time.sleep(seconds):將當前程序阻塞指定秒數,然后繼續運行程序。
  • time.time():返回當前時間的時間戳,即1970年到現在經過的浮點秒數。
  • time.struct_time:struct_time類初始化時需要傳入一個由9個時間信息組成的元組,該元組的時間信息依次為:tm_year=2018(年),tm_mon=8(月),tm_mday=8(日),tm_hour=23(時),tm_min=38(分),tm_sec=54(秒),tm_wday=2(星期,星期一為0),tm_yday=220(一年中的第幾天),tm_isdst=0(1表示支持夏令時,0表示不支持夏令時,-1表示未知)。當然,一個對象是struct_time對象,可以通過屬性的方式獲取這些值,比如:time.localtime().tm_year。
  • time.localtime(seconds=None):返回當前時間的struct_time對象,也可以指定秒數seconds(默認采用time.time()的int值),則返回1970加上指定秒數后的struct_time對象。
  • time.mktime(p_tuple):將struct_time對象(元組)轉換為時間戳,然后返回。
  • time.strptime(string, format):將時間字符串string按照指定格式format轉化成struct_time對象,如:time.strptime('2016-09-04', '%Y-%m-%d')
  • time.strftime(format, p_tuple=None):將struct_time對象(元組)轉換成指定格式的字符串,默認使用time.localtime()的結果來進行轉換,如:time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())。

  注:方法中的參數p_tuple表示可以是struct_time對象,也可以是滿足struct_time對象初始化的時間信息元組,其實struct_time對象就可以看成是一個由時間信息組成的元組

>>> import time
>>> # time.time()方法,返回當前時間的時間戳(1970年到現在經過的浮點秒數)
>>> time.time()
1473691580.9504104
>>> # time.struct_time對象,存儲時間信息
>>> structtime_obj = time.struct_time((2018, 8, 8, 23, 38, 54, 2, 220, 0))
>>> structtime_obj
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=23, tm_min=38, tm_sec=54, tm_wday=2, tm_yday=220, tm_isdst=0)
>>> structtime_obj.tm_year
2018
>>> # time.localtime()方法,默認返回即當前時間(time.time()的int值)的struct_time對象
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=23, tm_min=22, tm_sec=2, tm_wday=2, tm_yday=220, tm_isdst=0)
>>> time.localtime(time.time())
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=23, tm_min=22, tm_sec=2, tm_wday=2, tm_yday=220, tm_isdst=0)
>>> time.localtime(80000)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=6, tm_min=13, tm_sec=20, tm_wday=4, tm_yday=2, tm_isdst=0)
>>> # time.mktime()方法,將struct_time對象轉換成時間戳
>>> time.mktime(time.localtime())
1533746402.0
>>> # time.strptime()方法,將字符串按照指定格式轉換為struct_time對象
>>> time.strptime('2016-09-04', '%Y-%m-%d')
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=248, tm_isdst=-1)
>>> # time.strftime()方法,將struct_time對象轉換成指定格式的字符串
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
'2018-08-09 00:43:04'

 


 datetime模塊  

  datetime模塊通常用來操作日期信息(年月日和時分秒),常用的方法有:

  • datetime.datetime.now():返回當前日期時間的datetime對象,對象中包含年月日和時分秒信息,可通過str它來得到日期時間信息的字符串。
  • datetime.datetime.fromtimestamp(timestamp):將時間戳轉換成datetime對象,並返回。
  • datetime.datetime.strptime(date_string, format):將字符串按照指定格式轉成datetime對象,並返回,如:datetime.datetime.strptime('2016-09-04', '%Y-%m-%d')。
  • datetime.datetime.strftime(datetime, format):將datetime對象轉換為指定格式的字符串,並返回,如:datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')。
  • datetime.timedelta:timedelta對象初始化時指定日期時間信息,可用它與datetime對象進行加減操作,並返回新的datetime對象,當然timedelta對象之間也可以進行加減操作,返回新的timedelta對象。
  • timetuple():將datetime對象轉換成struct_time對象,並返回。
>>> import datetime
>>> # now()方法,返回當期時間的datetime對象,可通過str得到日期時間信息的字符串
>>> datetime_now = datetime.datetime.now()
>>> datetime_now
datetime.datetime(2018, 8, 9, 0, 59, 3, 487000)
>>> str(datetime_now)
'2018-08-09 00:59:03.487000'
>>> # fromtimestamp()方法,將時間戳轉換成datetime對象,並返回
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2018, 8, 9, 1, 2, 51, 546000)
>>> # strptime()方法,將字符串按照指定格式轉成datetime對象
>>> datetime.datetime.strptime('2016-09-04', '%Y-%m-%d')
datetime.datetime(2016, 9, 4, 0, 0)
>>> # strftime()方法,將datetime對象轉換為指定格式的字符串,並返回
>>> datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
'2018-08-09 01:18:10'
>>> # timedelta對象,可用於日期時間信息的加減操作
>>> timedelta_hour = datetime.timedelta(hours=4)
>>> timedelta_day = datetime.timedelta(days=8)
>>> timedelta_new = timedelta_hour + timedelta_day
>>> timedelta_hour
datetime.timedelta(0, 14400)
>>> timedelta_day
datetime.timedelta(8)
>>> timedelta_new
datetime.timedelta(8, 14400)
>>> datetime.datetime.now()
datetime.datetime(2018, 8, 9, 1, 30, 0, 593000)
>>> datetime_new = datetime.datetime.now() + timedelta_new
>>> datetime_new
datetime.datetime(2018, 8, 17, 5, 30, 1, 70000)
>>> # timetuple()方法,將datetime對象轉換成struct_time對象
>>> now_datetime = datetime.datetime.now()
>>> now_datetime.timetuple()
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=2, tm_min=5, tm_sec=50, tm_wday=3, tm_yday=221, tm_isdst=-1)

 

日期時間格式化字符串
%a         星期的縮寫。如星期三Wed
%A 星期的全名。如星期三Wednesday
%b 月份的縮寫。如四月份Apr
%B 月份的全名。如4月份April
%c 日期和時間字符串表示。如04/07/10 10:43:39
%d 每月的第幾天
%p AM或PM
%H 小時(24小時格式)
%I 小時(12小時格式)
%j 一年中的第幾天
%m 月份
%M 分鍾
%S
%f 微秒
%U 一年中的第幾周(星期天為一周的第一天,新的一年的第一個星期天被認為是第0周的開始)
%w 星期幾(星期天為0)
%W 一年中的第幾周(星期一為一周的第一天,新的一年的第一個星期一被認為是第0周的開始)
%x 日期字符串
%X 時間字符串
%y 年份(不含世紀,即兩個數字表示)
%Y 年份(含世紀,即4個數字表示)
%Z 時區名稱
%z Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59].
%%

百分號“%”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM