Python中日期格式化是非常常见的操作,Python 中能用很多方式处理日期和时间,转换日期格式是一个常见的功能。Python 提供了一个 time模块可以用于格式化日期和时间。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年01月01日00时00分00秒起经过了多长时间来表示。
获取日期时间戳
获取当前日期:time.time() # 返回一个时间戳
获取元组形式的时间戳:time.local(time.time())
t = time.localtime(time.time())
print(t,type(t))
# time.struct_time(tm_year=2020, tm_mon=1, tm_mday=13, tm_hour=14, tm_min=43, tm_sec=55, tm_wday=0, tm_yday=13, tm_isdst=0) <class 'time.struct_time'>
格式化符号
%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 | 当前时区的名称 |
格式化日期(基于time模块):
1. 将字符串的时间转换为时间格式time.struct_time
time.strftime(format[,t])
如
import time
t = "2020-01-13 17:30:00"
#将其转换为time.struct_time格式
struct_time = time.strptime(t, "%Y-%m-%d %H:%M:%S")
print(struct_time)
# time.struct_time(tm_year=2020, tm_mon=1, tm_mday=13, tm_hour=17, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=13, tm_isdst=-1)
2. 将time.struct_time转为时间戳
time_stamp = int(time.mktime(struct_time))
print(time_stamp)
# 1578907800
3. 时间戳转换为指定格式日期
local_time = time.localtime(time_stamp)
format_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(format_time)
# 2020-01-13 17:30:00