Python中strftime()与strptime()的行为与datetime的时间格式码

前言

datetime在python中的作用不可小视,它可以与string进行相互转化,比如

import datetime
# 将输出当前时间的'日/月/年'
datetime.datetime.now().strftime('%d/%m/%Y')
#将得到datetime.datetime(2020, 1, 1, 0, 0)对象
datetime.datetime.strptime('01/01/2020','%d/%m/%Y')

date,datetime,time对象都支持strftime(format)方法来得到在format格式控制下的一个代表时间的字符串,可以这样记忆,'stringfromtime'-->strftime;

相反的,datetime.strptime(date_string,format)根据format从date_string创建出一个时间类的对象,可以这样记忆'stringproducetime'-->datetime;(没有time.strptime和date.strptime)

对于time对象,格式码的’年‘,’月‘,’日‘不应该使用,因为time对象没有这些值,如果它们被用了,1900则来指代’年‘,1来指代’月‘,和’日‘。

from datetime import time
t=time(12,30,30)
t.strftime('%Y/%m/%d/%H/%M/%S')

输出:

'1900/01/01/12/30/30'

对于date对象,格式码的'小时','分钟,'秒,'微秒’不应该被使用,因为date没有这些值,如果被用了,0就用来代替它们。

格式码

格式 含义 例子
%Y 带世纪的年 1991,1992,2000
%y 不带世纪的年 91,92,00
%m 带0的月 01,02,03,12
%B 场所月全称 January,February
%b 场所缩写月 Jan,Feb,Dec
%d 带0的每月的几号 01,02..31
%w 星期的数字编号,0是周天 0,1,2..6
%W 年的星期数 00,01,53
%a 场所缩写星期 Sun,Mon,...Sat
%A 场所全称星期 Sunday,Monday...
%j 带0的年的第几天 001,002,366
%H 24小时的小时 00,01,23
%I 12小时的小时 01,02,..12
%M 分钟 00,40,59
%S 00,01,59
%f 微秒 000000,999999
%p 场地上午/下午,AM/PM AM,PM
%c 场地合适的日期和时间表示 Mon Jan 1 12:30:30 1900
posted @   JohnYang819  阅读(585)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示

目录导航