Python时间格式转换

概述-strptime()与strftime()

若仅转换时间格式使用strftime(),若需要做时间操作则使用strptime()。
1、strptime()中的p指parse(解析), 一般解析都是说对字符串进行解析, 所以strptime()方法是将字符串解析为时间元组。
2、strftime()中的f指format(格式化), 即将时间处理为适合查看的格式, 所以strftime()方法是将时间元组格式化为字符串。
python中可以使用pandas库 / datetime库 / time库,改变时间格式。

一、 pandas改变时间格式:

import  pandas as pd
ts = '2023-03-15 19:20:30'
# 将时间改为pandas的时间戳格式
day = pd.to_datetime(ts)  # 或者pd.Timestamp(ts)
print(type(day))  # 
print(str(day))  # 2023-03-15 19:20:30
day_pro = day.strftime("%Y-%m-%d")  # 2023-03-15

二、 datetime改变字符串时间格式:

import os
from datetime import datetime, timedelta
# 转换日期的格式,必须先使用strptime转为对应格式的时间元组格式,再使用strftime转换时间格式
# 1、将字符串形式的时间解析为时间元组,时间格式为该字符串的时间格式
time = '2023-02-26'
t = datetime.strptime(time, "%Y-%m-%d")  # datetime.datetime(2023, 2, 26, 0, 0)
print(type(t))  # 
t_ = t - timedelta(days=1)  # 减去1天
# 2、将时间元组格式化为字符串,此时的时间格式为其他格式
t_str = datetime.strftime(t_, "%Y/%m/%d %H:%M:%S")  # 2023/02/25 00:00:00
print(type(t_str))  # 

# 处理文件修改时间
ch_timestamp = os.path.getmtime(os.path.join(path, "test.txt"))  # 1678790115.713
ch_hour_time = datetime.strptime(datetime.fromtimestamp(ch_timestamp).strftime("%Y-%m-%d %H:%M"), "%Y-%m-%d %H:%M").hour
ch_time = datetime.strptime(datetime.fromtimestamp(ch_timestamp).strftime("%Y-%m-%d %H:%M"), "%Y-%m-%d %H:%M")  # 2023-03-14 18:31:00
now_time = datetime.strptime(datetime.now().strftime("%Y-%m-%d %H:%M"), "%Y-%m-%d %H:%M")  # 2023-03-14 18:50:00
print(now_time + timedelta(days=1))  # 2023-03-15 18:50:00
now_dtime = datetime.strptime(datetime.now().strftime("%Y-%m-%d %H:%M"), "%Y-%m-%d %H:%M").hour
print(now_dtime - ch_dtime) # 1

三、 time改变字符串时间格式

import time
# 1、将字符串形式的时间解析为时间元组
t = '2020-07-21 18:10:10'
t_struct = time.strptime(t, "%Y-%m-%d %H:%M:%S")
print(t_struct)  # time.struct_time(tm_year=2020, tm_mon=7, tm_mday=21, tm_hour=18, tm_min=10, tm_sec=10, tm_wday=1, tm_yday=203, tm_isdst=-1)
# 2、将时间元组格式化为字符串
t_str = time.strftime("%Y-%m-%d", t)  # 2020-07-21 18:10:10
print(type(t_str))  # 

# 处理文件修改时间
import os
import time
# 获取文件修改的时间戳
ch_timestamp = os.path.getmtime(os.path.join(path, "test.txt"))  # 1678790115.713
timestruct = time.localtime(ch_timestamp)  # time.struct_time(tm_year=2023, tm_mon=3, tm_mday=14, tm_hour=18, tm_min=35, tm_sec=15, tm_wday=1, tm_yday=73, tm_isdst=0)
t1 = time.strftime("%Y-%m-%d %H:%M:%S", timestruct)  # # 2023-03-14 18:31:00

Python中日期格式如下:

	%y  两位数的年份表示(00-99)
	%Y  四位数的年份表示(000-9999)
	%m  月份(01-12)
	%d  月内中的一天(0-31)
	%H  24小时制小时数(0-23)
	%I  12小时制小时数(01-12) 
	%M  分钟数(00=59)
	%S  秒(00-59)
	%a  本地简化星期名称
	%A  本地完整星期名称
	%b  本地简化的月份名称
	%B  本地完整的月份名称
	%c  本地相应的日期表示和时间表示
	%j  一年中的一天(001-366)
	%p  本地A.M.或P.M.的等价符
	%U  一年中的星期数(00-53)星期天为星期的开始
	%w  星期(0-6),星期天为星期的开始
	%W  一年中的星期数(00-53)星期一为星期的开始
	%x  本地相应的日期表示
	%X  本地相应的时间表示
	%Z  当前时区的名称
	%%  表示%

你可能感兴趣的:(Python笔记,python)