2014-12-09 7 views
14

Я пытаюсь сохранить формат даты в ГГГГ-ММ-ДД, например, 2014-09-01 в виде файла CSV, но формат возвращается к M/D/YYYY, когда я это делаю.Как конвертировать дату в Excel в ISO 8601 формат

Я попытался преобразовать дату в виде строки в Excel, но каждый раз, когда я открываю CSV-файл, он возвращается в формат M/D/YYYY. Мне нужен формат даты ISO 601, который будет сохранен в CSV-файле. Как мне это сделать?

+1

Да, формат M/D/Y довольно бесполезен - вы не можете сортировать по дате на нем и нарушать то, что мы узнали в 1-м классе - цифры имеют самые значащие цифры слева, наименее значимые справа (сто/десятки/ед., помните). Таким образом, тысячелетия (т. Е. Тысячи лет), очевидно, более значительны, чем сотни, десятки, единицы лет, затем десятки месяцев, единицы месяцев, затем десятки дней, единицы дней. Не знаю, почему люди все еще используют M/D/Y в 21 веке - это должно быть запрещено. – DaveBoltman

ответ

2

Вы можете просто перейти прямо к ядерному варианту: измените настройки «Регион и язык» вашего компьютера, чтобы использовать короткий формат даты «yyyy-MM-dd».

1

Я считаю, что вы, возможно, создали правильный формат в CSV-файле.

Но этот Excel автоматически принуждает это к значению даты в формате, который вы указываете при открытии CSV-файла. Решение может состоять в том, чтобы импортировать файл .csv, а не открывать его, и на шаге 3 «Получить внешние данные» из текста убедитесь, что текст выбран для формата данных столбца, где это необходимо.

+0

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

19

Основная функция:

=TEXT(A1,"yyyy-mm-ddThh:MM:ss") 

Используйте это, чтобы преобразовать столбцы даты Excel в отдельный ISO 601 Дата столбцов. Затем скопируйте колонки ISO 601 на оригиналы (только для вставки: только значения пасты). Исключить расчетные столбцы ISO 601, которые теперь имеют мусор в них, потому что Excel сосет по ISO 601 датам.

Теперь у вас есть преобразованный CSV или TSV или еще что-то еще. Просто сохраните в качестве исходного формата и проигнорируйте глупое чтение Excel, когда оно не является его родным файловым форматом и как вы собираетесь «проиграть» каким-то образом, сохранив в качестве файла CSV и постарайтесь не думать о часах вашей жизни Microsoft украла с этим немым диалогом.

4

Я скопировать и вставить формулу @Dirk Бестера выше,

=TEXT(A1,”yyyy-mm-ddThh:MM:ss”) 

, но это не будет работать, Excel 2010 жалуясь высоким и низким - то есть, пока я не изменил кавычки от какого-то " умная цитата "на простой старый ASCII 0x22 кавычки:

=TEXT(A1,"yyyy-mm-ddThh:MM:ss") 

И теперь это работает как шарм. FYI.

+2

Странно, интересно, как там проскользнули. Умные кавычки действительно тупые. –

6

В качестве меры предосторожности для пользователей, не являющихся англичанами. Мне просто потребовалось некоторое время, чтобы понять, что строка формата чувствительна к вашим региональным настройкам/локали. Например. с моими настройками форматирования на немецкий:

=TEXT(C2;"jjjjMMtt") 

(Хотя ОС и Excel установлены на английском языке.)

+0

Я думаю, вы должны использовать = TEXT (A2; "jjjjMMtt") вместо этого, или вы показываете минуты вместо месяца – keuleJ

+0

Спасибо, я проверил и обновил его выше соответственно! –

0

Вы можете создать ячейку, пример:

правой кнопкой мыши на ячейке> Формат ячеек > Категория> Пользовательский> Тип> напишите:

aaaa-mm-jjThh:mm:ss (french format here) 
yyyy-mm-ddThh:MM:ss (english format) 

Извините за мой английский.

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