2013-06-10 3 views
4

Мне дали кучу отчетов, сгенерированных кем-то, кто больше не с нами. Они начинаются с десятичной даты и времени следующим образом: «41433.662413», «41401.250002» Я пробовал много разных методов, используя дату и время, и не могу понять, как восстановить дату. Я знаю (из-за письменной записки), что выше относится к 27 мая 2013 года 6 утра. Любая помощь будет принята с благодарностью. Спасибо.Десятичная дата и время преобразования

+1

В каком формате они находятся? – Blender

+0

Какое из вышеизложенного относится к 27 мая? Там двое ... Кроме того, думая об этом, вам нужно знать две даты, чтобы иметь возможность разобраться в этом. 1, чтобы выработать то, что считаете правильным, второе - проверить его. Если у вас нет двух, вы останетесь с угадыванием, исходя из того, насколько реалистичны результаты. – Ben

+0

Первый использует десятичный разделитель (.) Как разделитель, второй использует запятую (,). Это по дизайну или опечатке? –

ответ

7

Это похоже на даты автоматизации OLE, которая используется во многих systems such as Microsoft Excel. Это эффективно значение с плавающей точкой, представляющая дни, со значением 1,0, равного полуночи 1 января 1900 года

Вы можете преобразовать в дату питона через:

from datetime import timedelta, datetime 

d = timedelta(days=41433.662413) 
st = datetime(1899,12,31) 
date = st + d 
print(date) 

Это будет печатать 2013-06-09 15:53:52.483200. Хотя это отличается от датой 27 мая, о которой вы упоминали, учитывая, что вы включили более одного ввода, I подозреваемый это правильное преобразование, поскольку это будет стандарт, который предоставляет даты и время в пределах того же диапазона, что и ваша рукопись заметка. Однако, не зная точно, какой вход соответствует этой дате, было бы трудно сказать.

, May 27th, at 6am будет значением 41420.25, используя это преобразование. Я проверил бы это «значение», чтобы проверить, совпадает ли ручная записка с этим форматом.

+0

Спасибо за помощь. Я исправил запятую, это была опечатка. Результат excel находится на месте. Какая формула была использована? Могу ли я использовать его в python? Благодарю. –

+0

У меня есть еще один отчет, для которого у меня есть правильная дата: «41373.624205», «41374.250001» Это определенно на 10 апреля 2013 года. Надеюсь, что это поможет. Еще раз спасибо за ваше время. –

+0

@Floatingshed Это работает с вышеизложенным - и сообщает 10 апреля. В excel вы можете просто ввести дату и формат в виде числа, чтобы увидеть эти значения. –

Смежные вопросы