python日期及時間格式轉換


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)

參考:


免責聲明!

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



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