Python中datetime对象格式化为字符串的详解
本文详细介绍Python中如何将datetime对象转换为指定格式的字符串。通过strftime方法,演示了标准时间格式、添加上下午标识以及计算全年第几天和周数的具体实现,包含完整代码示例与格式符号说明,帮助开发者快速掌握日期时间处理技巧。
在进行日期时间处理时,了解标准的转换格式符号是基础。这些符号定义了如何将datetime对象中的各个部分(如年、月、日、时、分、秒等)映射为字符串中的特定字符。掌握这些符号有助于灵活定制输出的时间字符串格式。
%a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE) %A 本地星期全名称 如 :Sunday, Monday, ..., Saturday (en_US);Sonntag, Montag, ..., Samstag (de_DE) %w 星期的数字表示,0表示周日,6表示周六 如:0,1,2,,,6 %d 日的数字表示,并且使用0来填补(0-9),如:01, 02, ..., 31 %b 月份的短名称显示,英文单词简写,如:Jan, Feb, ..., Dec (en_US);Jan, Feb, ..., Dez (de_DE) %B 月份的全名称显示,如:January, February, ..., December (en_US);Januar, Februar, ..., Dezember (de_DE) %m 月份数字显示,并且用0来补全,如:01, 02, ..., 12 %y 年份的数字表示,两位表示,如:00, 01, ..., 99 %Y 年份的数字表示,四位表示,如:0001, 0002, ..., 2013, 2014, ..., 9998, 9999 %H 24小时制表示,如:00, 01, ..., 23 %I 12小时制表示,如:01, 02, ..., 12 %p 上下午的表示,如:AM,PM %M 分钟,并且用0补全(0-9),如:00, 01, ..., 59 %S 秒钟,并且用0补全(0-9),如:00, 01, ..., 59 %f 微妙表示,如:000000, 000001, ..., 999999 %z 时区偏移量,如:(empty), +0000, -0400, +1030 %Z 时区名称,如:(empty), UTC, EST, CST %j 全年中的哪一个,用0补全,如:001, 002, ..., 366 %U 全年中的第几个星期,sunday为第一天如:00, 01, ..., 53 %W 全年中的第几个星期,monday为第一天如:00, 01, ..., 53 %c 本地时间,如:06/24/17 15:43:10 %x 本地日期,如:08/16/88 (None); %X 本地时间,如:21:30:00 (en_US); %% %符号
Python提供了datetime模块来处理日期和时间,其中strftime方法是将datetime对象转换为字符串的核心函数。该方法接受一个格式字符串作为参数,根据预设的格式符号生成对应的字符串表示。
例如,若需将当前时间格式化为“YYYY-MM-DD HH:MM:SS”的形式,可以使用strftime方法配合相应的格式符号。具体实现时,首先导入datetime类并获取当前时间对象,然后调用strftime方法传入格式字符串“%Y-%m-%d %H:%M:%S”,即可得到如“2017-06-24 10:10:20”这样的字符串结果。
>>> from datetime import datetime >>>now = datetime.now() >>> now datetime.datetime(2017, 6, 24, 16, 12, 16, 511223) >>> strnow = datetime.strftime(now,'%Y-%m-%d %H:%M:%S') >>> strnow '2017-06-24 16:12:16'
若希望在时间字符串中增加上午或下午的标识,可以在格式字符串中加入%p符号。该符号会根据时间自动替换为“AM”或“PM”。通过调整strftime的格式参数,可以轻松实现包含上下午标识的时间字符串输出,例如“2017-06-24 10:10:20 PM”。
>>> strnow = datetime.strftime(now,'%Y-%m-%d %H:%M:%S %p') >>> strnow '2017-06-24 16:12:16 PM'
除了基本的时间格式化,还可以利用strftime计算当前日期在一年中的天数和周数。通过加入%j符号可以获取全年第几天(补零至三位),加入%U或%W符号可获取全年第几周(分别以周日或周一为第一天)。将这些符号组合进格式字符串,即可一次性输出包含日期、时间、上下午标识、全年天数及周数的完整信息。
>>> strnow = datetime.strftime(now,'%Y-%m-%d %H:%M:%S %p %U %j') >>> strnow '2017-06-24 16:12:16 PM 25 175'
以上内容涵盖了Python中datetime对象转换为字符串的主要方法和常见应用场景。通过灵活运用strftime方法及格式符号,开发者可以高效地处理各种日期时间格式化需求。希望本文提供的实例和说明能对读者有所帮助,欢迎继续探索Python日期时间处理的更多功能。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









