gpt4 book ai didi

python - 从周数中获取日期

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:23 25 4
gpt4 key购买 nike

我正在尝试根据星期几获取日期,但有一些麻烦。

date.weekday() 返回星期几,其中 0 表示星期一,6 表示星期日。

date.strftime()date.strptime()%w 指令使用 0 表示星期日,6 表示星期六。

当试图从 date.weekday() 中找出给定周数的日期时,这会导致一些非常烦人的问题。

是否有更好的方法从周数中获取日期?

编辑:

添加了示例。

import datetime

original_date = datetime.date(2014, 8, 24)
week_of_the_date = original_date.isocalendar()[1] # 34
day_of_the_date = original_date.isocalendar()[2] # 7
temp = '{0} {1} {2}'.format(*(2014, week_of_the_date, day_of_the_date-1))
date_from_week = datetime.datetime.strptime(temp, '%Y %W %w')
week_from_new_date = date_from_week.isocalendar()[1] # 35!!

编辑 2:
我最终将日期内容放在 View 中(使用 jQuery UI),它具有更一致的周概念。

最佳答案

我认为使用 %Wweekdaystrftime 之间的周日与周一区别是没有实际意义的——你可以使用 isoweekday 让那些排队,或者 %U in strftime 如果你想星期天作为一周的第一天。真正的问题是 strftime,基于底层 C 函数,以不同于 ISO 定义的方式确定一年中的第一周。对于 %W,文档说:“第一个星期一之前的新年中的所有日子都被视为第 0 周”。 ISO 日历将包含第一个星期四的那一周算作第一周,原因我不明白。

我发现使用 ISO 周的两种方法,要么只是获取 datetime.date 实例,要么支持各种操作,它们是:

  1. 这个答案用一个简单的 timedelta 方法: What's the best way to find the inverse of datetime.isocalendar()?
  2. 此第三方库:https://pypi.python.org/pypi/isoweek/

关于python - 从周数中获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25469563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com