sistema - restar fechas con python
Obtener la fecha del número de semana (3)
Por favor, ¿qué pasa con mi código?
import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)
Mostrar "2013-01-01 00:00:00", Gracias.
Aquí hay una función útil que incluye el problema con cero semanas.
Un número de semana no es suficiente para generar una fecha; necesitas un día de la semana también. Agregar un valor predeterminado:
import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d + ''-0'', "%Y-W%W-%w")
print(r)
El patrón -0
y -%w
le dice al analizador que elija el domingo en esa semana. Esto produce:
2013-07-07 00:00:00
Puede elegir su propio día de la semana, lo que mejor se adapte a su caso de uso; el patrón %W
se basa en semanas del lunes, por lo que quizás -1
sea un mejor incumplimiento aquí.
Consulte la sección de comportamiento strftime()
y strptime()
en la documentación, nota al pie 4:
Cuando se utiliza con el método
strptime()
,%U
y%W
solo se usan en los cálculos cuando se especifican el día de la semana y el año.
import datetime
res = datetime.datetime.strptime("2018 W30 w1", "%Y %W w%w")
print res
La adición de 1 como día de la semana producirá el inicio exacto de la semana actual. Agregar timedelta (días = 6) le dará el fin de semana.
datetime.datetime(2018, 7, 23)