Преобразование метки времени python в день года

#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. Мне ужасно жаль! Я вообще не понимал, что в вопросе была дата. Мои извинения!