您的位置:

Python日期格式化指南

一、基础格式化

Python中常用的日期格式化字符串如下:

%Y  年份,4位数字
%m  月份,1-12
%d  日期,1-31
%H  小时,24小时制,0-23
%M  分钟,0-59
%S  秒数,0-59

如要将日期格式化为字符串:

import datetime

today = datetime.datetime.today()
formatted = today.strftime('%Y-%m-%d %H:%M:%S')
print(formatted)

输出:2022-07-12 17:26:40

使用datetime.datetime.strptime()方法将字符串转为datetime对象:

datetime_str = '2022-07-12 17:26:40'
datetime_obj = datetime.datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')
print(datetime_obj)

输出:2022-07-12 17:26:40

二、日期加减

使用datetime.timedelta()函数可以对日期加减。

import datetime

today = datetime.datetime.today()
delta = datetime.timedelta(days=3)
new_date = today + delta
formatted = new_date.strftime('%Y-%m-%d %H:%M:%S')
print(formatted)

输出:2022-07-15 17:26:40

三、本地化

Python中有个locale模块,可以用于本地化日期。

import datetime
import locale

today = datetime.datetime.today()
locale.setlocale(locale.LC_ALL, 'en_US')
formatted = today.strftime('%A, %B %d, %Y')
print(formatted)

输出:Tuesday, July 12, 2022

四、时区

使用pytz模块可以对日期进行时区转换。

import datetime
import pytz

today = datetime.datetime.now(tz=pytz.UTC)
pst_tz = pytz.timezone('America/Los_Angeles')
pst_time = today.astimezone(pst_tz)
formatted = pst_time.strftime('%Y-%m-%d %H:%M:%S %Z%z')
print(formatted)

输出:2022-07-12 10:26:40 PDT-0700

五、时间戳

使用time模块的time()函数可以获取当前时间戳,使用datetime.datetime.fromtimestamp()函数可以将时间戳转换为datetime对象。

import datetime
import time

timestamp = time.time()
datetime_obj = datetime.datetime.fromtimestamp(timestamp)
formatted = datetime_obj.strftime('%Y-%m-%d %H:%M:%S')
print(formatted)

输出:2022-07-12 17:26:40

六、strftime格式化字符列表

%a 星期几的简写 Wed
%A 星期几的全称 Wednesday
%b 月份的简写 Jan
%B 月份的全称 January
%c 本地日期时间表示 Mon Jul 12 17:26:40 2022
%d 月份中的日期(01-31) 31
%H 24小时制小时数(00-23) 23
%I 12小时制小时数(01-12) 11
%j 一年中的第几天(001-366) 365
%m 月份数字(01-12) 12
%M 分钟数(00-59) 59
%p AM/PM PM
%S 秒数(00-61) 59
%U 一年中的第几周(00-53),星期日为一周的第一天 52
%w 一周中的第几天,星期日为0 0
%W 一年中的第几周(00-53),星期一为一周的第一天 52
%x 本地日期表示 07/12/22
%X 本地时间表示 17:26:40
%y 2位数字的年份 22
%Y 4位数字的年份 2022
%z UTC偏移量 +0800
%Z 时区 CST