[Python]strftime日期时间格式化,强制指定locale语言输出(如中文星期、月份)

2021-05-13 50点热度 0人点赞 0条评论

strftime是Python里将日期、时间格式化的一个工具方法

下面的代码片段将datetime转换成格式化后的string

from datetime import datetime

now = datetime.now()  # 当前日期

year = now.strftime("%Y")
print("年份:", year)

month = now.strftime("%m")
print("月份:", month)

day = now.strftime("%d")
print("天:", day)

print("星期:", now.strftime("%A"))

time = now.strftime("%H:%M:%S")
print("时间:", time)

date_time = now.strftime("%Y-%d-%m  %H:%M:%S")
print("当前日间日期是:", date_time)

以上代码打印出来的结果是:

年份: 2021
月份: 05
天: 13
星期: Thursday
时间: 09:33:11
当前日间日期是: 2021-13-05  09:33:11

强制使用指定的locale语言

以上看到输出星期几的时候,可能输出的是英文的Thursday,还有可能是上下午,月份等等,可能都是英文的,那我们需要输出中文的,可以指定所用的区域语言Locale

from datetime import datetime
import locale

now = datetime.now()  # 当前日期
locale.setlocale(locale.LC_TIME, 'zh_CN')  # 指定输出中文

print("星期:", now.strftime("%A"))
print("月份:", now.strftime("%B"))

格式化符号详解

Python的格式化符号和Java的有点不一样,整理如下:

Directive Meaning Example
%a 本地简化星期名称 四,Sun, Mon, ...
%A 本地完整星期名称 星期四,Sunday, Monday, ...
%w 星期(0-6),星期天为星期的开始 0, 1, ..., 6
%d 两位数表示的月内中的一天(01-31) 01, 02, ..., 31
%-d 月内中的一天(1-31) 1, 2, ..., 30
%b 本地简化的月份名称 Jan, Feb, ..., Dec
%B 本地完整的月份名称 五月,January, February, ...
%m 两位数表示的月份 01, 02, ..., 12
%-m 数字表示的月份 1, 2, ..., 12
%y 两位数的年份表示(00-99) 00, 01, ..., 99
%-y 数字表示的年份 0, 1, ..., 99
%Y 四位数的年份表示(000-9999) 2013, 2019 etc.
%H 两位数表示的24小时制小时数(0-23) 00, 01, ..., 23
%-H 数字表示的24小时的小时数 0, 1, ..., 23
%I 两位数表示的12小时制小时数(01-12) 01, 02, ..., 12
%-I 12小时制小时数(1-12) 1, 2, ... 12
%p 本地A.M.或P.M.的等价符 上午,AM, PM
%M 两位数表示的分钟数(00-59) 00, 01, ..., 59
%-M 数字表示的分钟数 0, 1, ..., 59
%S 两位数表示的秒(00-59) 00, 01, ..., 59
%-S 数字表示的秒 0, 1, ..., 59
%f 六位数表示的微秒 000000 - 999999
%z 时差+0000, -0400 +0000, -0400
%Z 当前时区的名称
%j 3位数表示的年内的一天(001-366) 001, 002, ..., 366
%-j 数字表示的年内的一天(1-366) 1, 2, ..., 366
%U 一年中的星期数(00-53)星期天为星期的开始 00, 01, ..., 53
%W 一年中的星期数(00-53)星期一为星期的开始 00, 01, ..., 53
%c 本地相应的日期表示和时间表示 Mon Sep 30 07:06:05 2013
%x 本地相应的日期表示 09/30/13,2021/05/13
%X 本地相应的时间表示 07:06:05
%% %号本身 %

如何反向根据string转换成datetime请看:https://blog.terrynow.com/2021/05/15/python-strptime-parser-string-to-datetime/

admin

这个人很懒,什么都没留下

文章评论

*

code