У меня возникли проблемы с форматированием Excel datetimes, так что он работает на международном уровне. Наша программа написана на C++ и использует COM для экспорта данных из нашей базы данных в Excel, и это включает в себя поля datetime.Форматирование даты в формате Excel
Если мы не поставляем маску форматирования, некоторые установки Excel отображают эти даты в виде серийных номеров (дни с 1900 года по 01 января, а затем в качестве 24-часовой доли). Это нечитаемо для человека, поэтому мы выяснили, что мы ДОЛЖНЫ предоставить маску для форматирования даты, чтобы быть уверенным, что она будет доступна для чтения.
Проблема - как я ее вижу - это то, что Excel использует международные маски для форматирования. Например; маска формата даты в Великобритании может быть «ГГГГ-ММ-ДД ЧЧ: ММ».
Но если маска формата отправлена в Excel, установленный в Швеции, она терпит неудачу, поскольку в шведской версии Excel используется «ÅÅÅÅÅ-MM-DD tt: mm».
Это очень непрактично, чтобы иметь 150 различных национальных масок для форматирования даты и времени в нашем приложении для поддержки разных стран.
Есть ли способ написать маски для форматирования, чтобы они включали локаль, чтобы нам разрешили использовать ОДНУ одну маску?
Можно ли спросить ОС или приложение Excel, что такое локализованная маска длительной даты, и что это такое? –
В Excel вы можете получить доступ как к локальному формату даты 'NumberFormatLocal', так и к формату даты в формате' NumberFormat'. Если ваша программа на C++ может взаимодействовать с Excel, вы можете проверить «NumberFormatLocal» на предварительно установленную ячейку, или вы будете работать в кругах таким образом? –
Спасибо, я проверю это.Но я думаю, что это также локализовано, поэтому вам нужно попросить «Краткую дату», если это американский Excel, но «Корт-датам», если это шведский Excel, иначе вы получите мусорный ответ. До сих пор это уловка. :) – LasseSL500