Лучший формат промежутка времени (разница во времени) для CSV

Этот вопрос очень похож на лучший формат метки времени для CSV / Excel?:

Пишу файл CSV. Мне нужно указать интервалы времени (также известные как разница во времени) с точностью как минимум до секунды, а желательно до миллисекунды. Какой лучший формат для временных меток в файле CSV, чтобы их можно было точно и однозначно анализировать такими программами, как Excel, с минимальным вмешательством пользователя?

Предпочтительно в формате, который все еще легко анализируется человеком, даже если он охватывает несколько дней, т.е. вместо 265:00:00 чего-то, что человек может определить, что это 11 дней, не выполняя вычислений в своей голове.

Я должен добавить, что я создаю CSV вне Excel, поэтому речь идет не о получении данных из из Excel или форматировании данных в Excel, а о том, как отформатировать простой CSV-файл, чтобы и Excel, и люди могли понимать значения временного интервала.


person Joachim Breitner    schedule 25.01.2014    source источник


Ответы (2)


Для любого произвольного количества дней проблема заключается не в создании формата, а в считывании файла .csv обратно в созданный Excel. Например, если ячейка содержит:

134.45632176823

его значение в днях / времени:

134 дня, 10 часов, 57 минут, 6 секунд, 201 миллисекунда

Даже если бы вы могли отформатировать ячейку для отображения:

134 10:57:06.201

а затем сохранил файл как .csv,, при повторном открытии файла Excel интерпретирует значение как строку, а не дни / время (у человека не возникнет проблем с интерпретацией формат)

ИЗМЕНИТЬ №1:

если вы введете 1.23456789, если ячейка, и отформатируйте ее как d hh: mm: ss.000, она будет отображаться как:

1 05:37:46.666

Если затем вы сохраните файл как .csv и откроете .csv с помощью Блокнота, вы увидите текст в неизменном формате. Однако если вы повторно откроете .csv в Excel, вы найдете текстовую ячейку, а не числовую ячейку, отформатированную как дни / время.

В Excel нет этой проблемы с ячейкой, содержащей стандартную дату, например 25 января 2014 г.

person Gary's Student    schedule 25.01.2014
comment
Проблема с 134.45632176823 в том, что человек не сможет понять этого. Я ищу что-то, что может сгенерировать мое приложение, что Excel не будет интерпретировать как просто строку - если это вообще возможно. - person Joachim Breitner; 25.01.2014
comment
Если количество дней меньше или равно 31, вы можете использовать специальный формат: d hh.mm.ss.000 - person Gary's Student; 25.01.2014
comment
А Excel обнаруживает этот формат в файле CSV? Обратите внимание, что этот вопрос не о форматировании в Excel. - person Joachim Breitner; 25.01.2014
comment
Хорошо, спасибо за разъяснения. Значит, неоптимально, но вполне может быть, что у проблемы нет решения. - person Joachim Breitner; 26.01.2014
comment
Что ж ... за исключением проблемы человеческого понимания, самый простой подход - оставить значение без формата ... его можно сохранять и извлекать без ошибок. - person Gary's Student; 26.01.2014
comment
Что вы имеете в виду под без формата - я сам создаю файл; Мне нужно написать кое-что. - person Joachim Breitner; 26.01.2014
comment
Я имею в виду использование NumberFormat, например 0,00000000000 - person Gary's Student; 26.01.2014

Я пробовал это в Excel

"y/m/d h:mm:ss.000"

и он вернул 07/1/10 10:14:02.016 для разницы между 01.01.2007 00:00:00 и 01.11.2014 10: 14: 02.016

person Mark Fitzgerald    schedule 25.01.2014
comment
Итак, если я помещу строку этого формата в файл CSV и открою его с помощью excel, это будет обнаружено как разница во времени? Я ожидал, что это будет обработано как свидание ... - person Joachim Breitner; 25.01.2014