python日期、时间戳和日期字符串之间的转换
此段时间涉及日期和时间戳数据处理较多,转化频繁,总结日期、时间戳、日期字符串之前的转化如下:
引入必要时间相关库:
import time, datetime
import dateutil.relativedelta
返回当前日期的元组(struct_time),含有9个元素的元组
now_time = time.time() # 返回时间戳,浮点秒数
my_struct = time.localtime(time.time())
print( my_struct)
#输出 time.struct_time(tm_year=2023, tm_mon=3, tm_mday=3, tm_hour=16, tm_min=42, tm_sec=36, tm_wday=4, tm_yday=62, tm_isdst=0)
当前时间戳
my_timestamp = time.mktime(time.localtime(time.time()))
print(my_timestamp) # 输出 1677832956.0
时间戳—>日期字符串
my_date_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(my_timestamp))
print(my_date_str) # 输出 '2023-03-03 16:42:36'
日期字符串—>日期datetime
my_date = datetime.datetime.strptime(my_date_str, "%Y-%m-%d %H:%M:%S")
print(my_date) # 输出 2023-03-03 16:42:36
时间戳—>日期datetime
stamp_to_datatime = datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(my_timestamp)),"%Y-%m-%d %H:%M:%S")
print(stamp_to_datatime) # 输出 2023-03-03 16:42:36
日期datetime—>时间戳
my_timestamp_1 = int(time.mktime(my_date.timetuple()))
print(my_timestamp) # 1677832956.0
此外还有日期的增减,总结如下,my_date = 2023-03-03 16:42:36:
# 日期加年、月、日、时、分、秒(减的话更改为负值即可)
my_date_add_year = my_date + dateutil.relativedelta.relativedelta(years=1)
print(my_date_add_year) # 输出 2024-03-03 16:42:36
my_date_add_month = my_date + dateutil.relativedelta.relativedelta(months=1)
print(my_date_add_month) # 输出 2023-04-03 16:42:36
my_date_add_day1 = my_date + dateutil.relativedelta.relativedelta(days=1) # 方法1
print(my_date_add_day1) # 输出 2023-03-04 16:42:36
my_date_add_day2 = (my_date + datetime.timedelta(days=1)) # 方法2
print(my_date_add_day2) # 输出 2023-03-04 16:42:36
my_date_add_hour = (my_date + datetime.timedelta(hours=1))
print(my_date_add_hour) # 输出 2023-03-03 17:42:36