python的time模塊實戰總結

版本:

  • Python2
  • Python3

Python的time模塊中時間表現的形式有三種

  • struct_time時間元組
  • timestamp時間戳
  • 格式化的時間字符串

時間(struct_time)

類似於new一個時間實例
適合獲取年月日時分秒,以及其他操作等等,
通過time.localtime()可以生成一個struct_time

時間戳(timestamp)

顧名思義,就是一個時間戳,單位是秒
適合進行時間的加減,time模塊不能直接對時間進行加減,比如說加1個小時,1天,只能通過時間戳進行加減

字符串

適合打印輸出

相互轉化

轉化關係

python的time模塊的時間實戰總結_01

字符串與時間之間的轉換

字符串轉時間

print(
        (
            "字符串轉時間: time.strptime(\"2019-10-08 20:30:00\", \"%Y-%m-%d %H:%M:%S\")"
            " --> {}"
        ).format(
            time.strptime("2019-10-08 20:30:00", "%Y-%m-%d %H:%M:%S")
        )
    )

返回結果:

字符串轉時間: 
time.strptime("2019-10-08 20:30:00", "%Y-%m-%d %H:%M:%S") --> 
time.struct_time(
	tm_year=2019, 
	tm_mon=10, 
	tm_mday=8, 
	tm_hour=20, 
	tm_min=30, 
	tm_sec=0, 
	tm_wday=1, 
	tm_yday=281, 
	tm_isdst=-1
)

時間轉字符串

t = time.localtime()
    print("時間轉字符串: time.strftime(\"%Y-%m-%d %H:%M:%S\", t) --> {}".format(
        time.strftime("%Y-%m-%d %H:%M:%S", t)
    ))

返回結果:

時間轉字符串: time.strftime("%Y-%m-%d %H:%M:%S", t) --> 2019-10-08 14:22:31

python的time模塊的時間實戰總結_02

時間與時間戳之間的轉換

時間轉時間戳

t = time.localtime()
print("時間轉時間戳: time.mktime(t) --> {}".format(time.mktime(t)))

返回結果:

時間轉時間戳: time.mktime(t) --> 1570515751.0

時間戳轉時間

sec = time.time()
print("時間戳轉時間: time.localtime(sec) --> {}".format(time.localtime(sec)))

返回結果:

時間戳轉時間: time.localtime(sec) --> time.struct_time(
	tm_year=2019,
	tm_mon=10, 
	tm_mday=8, 
	tm_hour=14, 
	tm_min=22, 
	tm_sec=31, 
	tm_wday=1, 
	tm_yday=281, 
	tm_isdst=0
)

python的time模塊的時間實戰總結_03

字符串與時間戳之間的轉換

字符串與時間戳之間的轉換需要先轉成時間類再向目標類型轉換

字符串轉時間戳

轉換過程: 字符串 --> 時間 --> 時間戳

f = "2019-10-03 10:45:00"
df = "%Y-%m-%d %H:%M:%S"
t = time.strptime(f, df)
sec = time.mktime(t)
print("字符串轉時間戳: sec = {}".format(sec))

返回結果:

字符串轉時間戳: sec = 1570070700.0

時間戳轉字符串

時間戳 --> 時間 --> 字符串

sec = 1570070700
t = time.localtime(sec)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", t)
print("時間戳轉字符串: time_str= {}".format(time_str))

返回結果:

時間戳轉字符串: time_str= 2019-10-03 10:45:00

python的time模塊的時間實戰總結_04

獲取當時時間

獲取當時間

time.localtime()

獲取當時時間的時間戳

time.time()

獲取當時時間特定格式的字符串

這種格式的時間字符串我們中國地區用得比較少,可以忽略不計

time.asctime()
time.ctime()

返回結果:

time.asctime() --> Tue Oct  8 14:30:49 2019
time.ctime() --> Tue Oct  8 14:30:49 2019

python的time模塊的時間實戰總結_05

時間的加減

time模塊時間的加減只能通過timestamp加減對應的秒數,然後再轉回去
如果給定的是時間字符串的話
只能先把字符串先轉爲時間, 再轉爲時間戳,
然後對時間戳進行加減, 加減過後再轉回時間,再轉回字符串
這樣挺麻煩的,推薦使用datetime模塊

下面給出一個時間字符串加3個小時,並打印結果:

t = time.strptime("2019-10-03 10:45:00", "%Y-%m-%d %H:%M:%S")
sec = time.mktime(t)
sec += 3 * 60 * 60
t1 = time.localtime(sec)
s1 = time.strftime("%Y-%m-%d %H:%M:%S", t1)
print("加3小時後的時間爲: {}".format(s1))

返回結果:

原時間爲: 2019-10-03 10:45:003小時後的時間爲: 2019-10-03 13:45:00

python的time模塊的時間實戰總結_06

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