1. 较当前时间指定时间格式,并转换为时间戳
def current_day_go(days=30):
current_date = datetime.datetime.now()
days_ago = current_date - datetime.timedelta(days=days)
formatted_date = days_ago.strftime("%Y-%m-%d %H:%M:%S")
return formatted_date
timeArray = time.strptime(formatted_date, "%Y-%m-%d %H:%M:%S")
timestamp = int(time.mktime(timeArray))
return timestamp
2. 时间戳转为时间
import time, datetime
from time import gmtime
def timestamp(the_time):
s_t = time.strptime(the_time, "%Y-%m-%d %H:%M:%S")
mkt = int(time.mktime(s_t))
return mkt
def exec_duration():
now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
date2 = "2022-07-27 12:04:20"
now_stamp = timestamp(now_time)
date2_stamp = timestamp(str(date2))
print(now_stamp, date2_stamp)
duration = time.strftime("%H:%M:%S", gmtime(now_stamp - int(date2_stamp)))
print(duration)
3. datetime.timedelta模块
- 介绍: “”"
timedelta()函数的构造:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
对参数设定具体的值,达到计算的要求,如:
设定:days=1 – 在原有时间上增加1天;
设定:minutes=-30 – 在原有时间上减少30分钟
“”" - 相关代码:
import datetime
import pandas as pd
from datetime import date
"%m/%d/%Y %H:%M:%S %p"
print(time.strftime('%Y-%m-%dT23:00:00Z'))
print((date.today() + datetime.timedelta(days=-1)).strftime("%Y-%m-%dT23:00:00Z"))
def module_timedelta():
dt1 = datetime.datetime(2022, 5, 12, 8, 30, 0)
dt2 = dt1 + datetime.timedelta(days=1)
dt3 = dt1 + datetime.timedelta(minutes=-30)
print("dt1:", dt1)
print("dt2:", dt2)
print("dt3:", dt3)
li = [["2022-05-6 10:00:00", "2022-05-10 08:30:00"],
["2022-05-7 08:30:00", "2022-05-10 12:30:00"],
["2022-05-9 12:00:00", "2022-05-10 14:30:00"]]
df = pd.DataFrame(li, columns=["date1", "date2"])
df.date1 = df.date1.map(lambda x: datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S"))
df.date2 = df.date2.map(lambda x: datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S"))
df["var1"] = df.date1 + datetime.timedelta(hours=1)
df["var2"] = df.date2 + datetime.timedelta(days=30)
print(df)
print((date.today() + datetime.timedelta(days=-1)).strftime("%Y-%m-%d 23:00:00"))