目錄
python腳本中經常會需要進行時間格式字符串和時間戳的轉換,另外,也記一下datetime的用法。
用到time模塊的地方都需要引入import time
字符串時間變成時間戳
match_time = '2018-05-22 08:30:00'
ans_time_stamp = time.mktime(time.strptime(match_time, "%Y-%m-%d %H:%M:%S"))
轉換成的時間戳是float類型
時間戳轉年月日時間樣式的字符串
# time.tme() 得到的是float型時間戳
struct_time = time.localtime(time.time()) # 得到結構化時間格式
now_time = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
datetime格式變時間戳
用pymysql從數據庫取出來的時間,如果不為空(記得判斷是否為空)則是 datetime
類型,可以直接相減得到 datetime.timedelta
類型,該類型想變時間戳用total_seconds()
函數。
delta_time = check_time - ipo_time
print(delta_time.total_seconds())
若是datetime
類型直接變時間戳用如下方法:
import datetime
import time
dtime = datetime.datetime.now()
print(dtime)
ans_time = time.mktime(dtime.timetuple())
print(ans_time)
字符串轉別的時間格式
# Wed May 09 00:00:00 CST 2018 轉 2018-05-09 00:00:00
time_str = 'Wed May 09 00:00:00 CST 2018'
dt = datetime.datetime.strptime(time_str, "%a %b %d %X %Z %Y")
直接從字符串中提取月日
import datetime
a = '2018-10-03 00:55:00'
b = datetime.datetime.strptime(a, '%Y-%m-%d %H:%M:%S').strftime('%m-%d')
得到今天昨天日期
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1)
# 若要轉成字符串還需要用str()
得到某月或某年
tmp_time = datetime.date(2018, 7, 20)
tmp_time.month
tmp_time.year
得到上個月
>>> import datetime
>>> today = datetime.date.today()
>>> first = today.replace(day=1)
>>> first
datetime.date(2018, 10, 1)
>>> last_month = first - datetime.timedelta(days=1)
>>> print(last_month.strftime("%Y%m"))
201809
得到下個月的同一日
import datetime
from dateutil.relativedelta import relativedelta
today = datetime.date.today()
next_month_day = today + relativedelta(months = 1)
print(next_month_day)
參考: