Формат даты в CSV-файле странное поведение - PullRequest
0 голосов
/ 16 мая 2018

У меня есть файл .csv, созданный с использованием устаревшего программного обеспечения.Нет никакого способа заглянуть внутрь кода, чтобы узнать, как и что он делает для создания файла csv.

Моя проблема в том, что формат поля даты ведет себя странно.Файл .csv хранит дату в следующем формате.

MM-dd-yyyy HH:mm:ss.SSS

Глядя в файл в блокноте (необработанные данные), мы получаем список таких столбцов:

"01-12-2013 14:23:38.000",146.199997
"01-12-2013 23:20:29.000",146.199997
"01-13-2013 17:59:23.000",152.299988
"01-13-2013 18:08:40.000",147.300003
"01-13-2013 18:25:52.000",156.000000
"01-13-2013 18:35:14.000",146.300003
"01-13-2013 18:44:56.000",148.500000
"01-13-2013 18:56:41.000",151.699997

ПРИМЕЧАНИЕ. Я вычеркнул оставшиеся столбцы, чтобы было легче видеть, поэтому мы видим только первые 2 столбца в файле .csv.

Теперь, когда я открываю этот файл в Excel 2010 версии 14.0.6023.1000(32-разрядная версия) У меня возникают проблемы с форматированием даты.

Во-первых, если я просто открываю файл, я получаю блоки смешанного форматирования даты, например:

Formatting 1

И это:

Formatting 2

Я вижу, что Excel запутывается, когда значение дня переключается с 12 на 13. Если язатем попробуйте изменить форматирование, чтобы устранить проблему, используя следующие параметры форматирования ячейки:

Column Formatting

Затем в столбце отображается следующий день, когда деньменьше 13:

Date Format 3

и следующий формат при тдень больше или равен 13:

Date Format 4

Любая помощь будет очень признательна в этом, так как я сейчас совершенно вне идей.

ПРИМЕЧАНИЕ. Я также попытался скопировать содержимое файла .csv в другой файл, но то же самое происходит и в новом файле.

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

У вас конфликт между форматом .csv и вашими региональными настройками.

Сначала импортируйте данные как Текст , (вместо двойного щелчка) . Затем в B1 или другом столбце введите:

=DATE(MID(A1,8,4),MID(A1,2,2),MID(A1,5,2))+TIMEVALUE(MID(A1,13,8))

и примените нужные форматы:

enter image description here

0 голосов
/ 16 мая 2018

Я нашел решение для своего экземпляра после прочтения ответов @ Gary's Student и @hughg. Спасибо за идеи.

Итак, чтобы исправить мою проблему:

  1. Изменены мои региональные настройки для дат и времени в США.
  2. Открыл файл как обычно в Excel.
  3. Выделил соответствующий столбец и отформатировал ячейки в текст. Это преобразовало все даты в файле в числа с плавающей запятой.
  4. Наконец, примените следующий пользовательский формат к ячейкам: dd/mm/yyyy hh:mm:ss

В результате каждая дата в файле теперь правильно отформатирована в британском формате даты.

0 голосов
/ 16 мая 2018

Эта проблема связана с тем, как Excel интерпретирует формат даты (M / D / Y против D / M / Y). Похоже, ваша система настроена на форматы даты D / M / Y. Вы не найдете настройки в Excel, потому что они получены из настроек вашей системы. Зайдите в настройки языка и добавьте американский английский. Затем установите его по умолчанию и попробуйте снова открыть файл CSV. В качестве альтернативы вы можете вставить содержимое файла CSV в новый лист и использовать функцию «Текст в столбцы», которая позволит вам указать формат даты.

...