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
##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
原文地址:https://www.cnblogs.com/johnyang/p/13642614.html