python3獲取時間戳、秒數和日期時間的相互轉換

1、獲取時間戳

代碼如下:

import time
import datetime

t = time.time()

print (t)                       #原始時間數據
print (int(t))                  #秒級時間戳
print (int(round(t * 1000)))    #毫秒級時間戳

nowTime = lambda:int(round(t * 1000))
print (nowTime());              #毫秒級時間戳,基於lambda

print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))   #日期格式化

結果:

1552267863.7501628
1552267863
1552267863750
1552267863750
2019-03-11 09:31:03

時間格式說明:

  • %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)
  • %a 本地簡化星期名稱
  • %A 本地完整星期名稱
  • %b 本地簡化的月份名稱
  • %B 本地完整的月份名稱
  • %c 本地相應的日期表示和時間表示
  • %j 年內的一天(001-366)
  • %p 本地A.M.或P.M.的等價符
  • %U 一年中的星期數(00-53)星期天爲星期的開始
  • %w 星期(0-6),星期天爲星期的開始
  • %W 一年中的星期數(00-53)星期一爲星期的開始
  • %x 本地相應的日期表示
  • %X 本地相應的時間表示
  • %Z 當前時區的名稱
  • %% %號本身

2、將秒數轉換爲時間

方法代碼:

import time

def getTime(seconds):
    timeArray = time.localtime(seconds)
    otherStyleTime = time.strftime("%H:%M:%S", timeArray)
    print(otherStyleTime)

if __name__ == '__main__':
    time = getTime(1551863258)
    print(time)

結果:

17:07:38

Process finished with exit code 0

上面例子中的%H:%M:%S可以根據需要設置爲別的格式,如%Y_%m_%d %H:%M:%S

3、將時間轉化爲秒數

示例代碼:

import time
import datetime

def composeTime(time1):
    time2 = datetime.datetime.strptime(time1, "%Y_%m_%d %H:%M:%S")
    time3 = time.mktime(time2.timetuple())
    time4 = int(time3)
    return time4

if __name__ == '__main__':
    time = composeTime("2019_03_06 17:07:38")
    print(time)

結果:

1551863258

Process finished with exit code 0

說明:上面代碼中之所以加了個int(time3)是因爲time3的值其實是1551863258.0,故以此方法來去掉後邊的小數點;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章