#python #datetime
#python #datetime
Вопрос:
Как я могу преобразовать метку времени python в день года:
Timestamp('2015-06-01 00:00:00')
Мне нужно число, где 1 января равно 1, 2 января равно 2… 31 декабря — 365 (для невисокосного года)
Комментарии:
1. что вы имеете в виду? вы хотите, чтобы это было число, где 0 — первый день года, или вы хотите, чтобы оно включало только дату и не указывало год?
2. @Whud, мне нужно число, где первый день года равен 1…
Ответ №1:
Возможно, вы захотите взглянуть на функцию datetime.timetuple()
, которая возвращает time.struct_time
объект с желаемым атрибутом. Он имеет именованный интерфейс кортежа, поэтому вы можете получить доступ к значениям по индексу или имени атрибута.
import datetime
date = datetime.datetime.strptime("2015-06-01 00:00:00",
"%Y-%m-%d %H:%M:%S")
print date.timetuple().tm_yday
#=> 152
Ответ №2:
Во-первых, вы можете преобразовать его в datetime.datetime
объект, подобный этому:
>>> import datetime
>>> format = "%Y-%m-%d %H:%M:%S"
>>> s = "2015-06-01 00:00:00"
>>> dt = datetime.datetime.strptime(s, format)
Теперь вы можете использовать методы dt
, чтобы получить то, что вы хотите, за исключением того, что dt
не имеет функции, которую вы хотите напрямую, поэтому вам нужно преобразовать во временной кортеж
>>> tt = dt.timetuple()
>>> tt.tm_yday
152
Комментарии:
1. Я просто копирую дату из вопроса, вот и все. это не плагиат .. и во время ответа я не видел ответа выше
2. Мне ужасно жаль! Я вообще не понимал, что в вопросе была дата. Мои извинения!