Python 为什么datetime isocalendar转换回将移动1周?

Python 为什么datetime isocalendar转换回将移动1周?,python,python-3.x,datetime,Python,Python 3.x,Datetime,我开始datetime.now()(今天是6/11)并过渡到工作日: >>> now=datetime.now().isocalendar() >>> now (2019, 24, 2) 但当我返回过渡时,我发现它在一周内发生了变化: >>> res = datetime.strptime(now[0]+'_'+now[1]+'_'+now[2], "%Y_%W_%w") >>> res datetime.datetim

我开始datetime.now()(今天是6/11)并过渡到工作日:

>>> now=datetime.now().isocalendar()
>>> now
(2019, 24, 2)
但当我返回过渡时,我发现它在一周内发生了变化:

>>> res = datetime.strptime(now[0]+'_'+now[1]+'_'+now[2], "%Y_%W_%w")
>>> res 
datetime.datetime(2019, 6, 18, 0, 0)
有人能上飞机吗? 非常感谢

从日期时间导入日期
iso_string=str(现在为[0]).zfill(4)+''.'+str(现在为[1]).zfill(2)+'.'+str(现在为[2]))
res=datetime.strtime(iso_字符串,“%G_%V_%u”).date()
STRTIME对ISO周号有特殊指令:
%G\u%V\u%u”

从试验来看,前导零似乎并不重要,但工程师说它们确实重要,所以一定要用
zfill()
添加它们

这只适用于python>=3.6,以前版本的
strtime
似乎与ISO不兼容

对于python的早期版本,我认为最好使用:

来自isoweek导入周
res=周(现在为[0],现在为[1])。天(现在为[2]-1)
从日期时间导入日期
iso_string=str(现在为[0]).zfill(4)+''.'+str(现在为[1]).zfill(2)+'.'+str(现在为[2]))
res=datetime.strtime(iso_字符串,“%G_%V_%u”).date()
STRTIME对ISO周号有特殊指令:
%G\u%V\u%u”

从试验来看,前导零似乎并不重要,但工程师说它们确实重要,所以一定要用
zfill()
添加它们

这只适用于python>=3.6,以前版本的
strtime
似乎与ISO不兼容

对于python的早期版本,我认为最好使用:

来自isoweek导入周
res=周(现在为[0],现在为[1])。天(现在为[2]-1)

谢谢,但我发现当工作日=0时,“%G_%V_%u”将显示“不匹配格式”。标准是
1,2,…,7,其中1是星期一
。这正是您的
isocalendar()
调用返回的结果。这也是您需要为isoweek库添加
-1
的原因。谢谢,但我发现当weekday=0时“%G_%V_%u”将显示“不匹配格式”。标准上说
1,2,…,7,其中1是星期一
。这正是您的
isocalendar()
调用返回的结果。这也是为什么需要为isoweek库添加
-1