我有一个函数应该为这样的日历构建标题:
' Sun Mon Tue Wed Thu Fri Sat '
它需要一个工作日('#Monday' 1, 2, 3, 4, 5, 6, 7 '#Sunday' 之一)。
这是代码:
@staticmethod
def _isoweekday_to_str(isoweekday):
isoweekday = isoweekday - 1
isoweekday = str(isoweekday)
x = datetime.strptime(isoweekday, '%w')
return x.strftime('%a')
TEXT_CAL_MONTH_WEEK_HEADER = ""
iter_isoweekday = week_start
for _ in range(0,7):
TEXT_CAL_MONTH_WEEK_HEADER += self._isoweekday_to_str(iter_isoweekday).rjust(TEXT_CAL_CELL_WIDTH, " ")
if iter_isoweekday != 7:
iter_isoweekday += 1
else:
iter_isoweekday = 1
当周开始时传入 4 时,我得到的输出是:
' Mon Mon Mon Mon Mon Mon Mon '
它应该是:
' Thu Fri Sat Sun Mon Tue Wed '
我真的,真的不确定发生了什么事。我认为这与分配变量的方式、字符串突变或日期时间库有关。
更新:看来 datetime.strptime 是问题所在。无论我传入什么,我都会返回 datetime(1900, 1, 1, 0, 0) ......你猜对了,那是星期一。
帮助?