Совместное использование кода и данных по локалям

Запись Locale-Independent кода даты и времени

Примените эти лучшие практики при обмене кодом, который обрабатывает даты и время с пользователями MATLAB ® в других локалях. Эти методы гарантируют, что один и тот же код создает одно и то же выходное отображение и что выходные файлы, содержащие даты и время, считываются правильно в системах в разных странах или с различными настройками языка.

Создайте независимые от языка значения datetime. То есть создайте значения datetime, которые используют номера месяцев, а не имена месяцев, например 01 вместо января. Избегайте использования имен дней недели.

Например, сделайте так:

t = datetime('today','Format','yyyy-MM-dd')
t = datetime
   2021-01-26

вместо этого:

t = datetime('today','Format','eeee, dd-MMM-yyyy')
t = datetime
   Tuesday, 26-Jan-2021

Отображение часа с использованием 24-часовых обозначений, а не 12-часовых обозначений. Используйте 'HH' идентификаторы при определении формата отображения значений datetime.

Например, сделайте так:

t = datetime('now','Format','HH:mm')
t = datetime
   18:16

вместо этого:

t = datetime('now','Format','hh:mm a')
t = datetime
   06:16 PM

При определении формата отображения информации о часовом поясе используйте Z или X идентификаторы вместо строчных z чтобы избежать создания имен часовых поясов, которые могут не распознаваться на других языках или областях.

Назначьте часовой пояс t.

t.TimeZone = 'America/New_York';

Задайте формат отображения, не зависящий от языка, который включает часовой пояс.

t.Format = 'dd-MM-yyyy Z'
t = datetime
   26-01-2021 -0500

Если вы делитесь файлами, но не кодом, вам не нужно записывать независимый от локали код во время работы в MATLAB. Однако при записи в файл убедитесь, что любой текст, представляющий даты и времена, не зависит от языка. Затем другие пользователи MATLAB могут легко считать файлы, не задавая локаль, в которой можно интерпретировать данные о дате и времени.

Запись дат на другие языки

Укажите подходящий формат для текста, представляющего даты и времена использования char или cellstr функций. Для примера преобразуйте два значения datetime в массив ячеек векторов символов с помощью cellstr. Укажите формат и локаль для представления дня, месяца и года каждого значения datetime в виде текста.

t = [datetime('today');datetime('tomorrow')]
t = 2x1 datetime
   26-Jan-2021
   27-Jan-2021

S = cellstr(t,'dd. MMMM yyyy','de_DE')
S = 2x1 cell
    {'26. Januar 2021'}
    {'27. Januar 2021'}

S - массив ячеек из векторов символов, представляющий даты на немецком языке. Можно экспортировать S в текстовый файл для использования с системами в de_DE локаль.

Чтение дат на других языках

Вы можете считать текстовые файлы, содержащие даты и время, на языке, отличном от языка, на котором MATLAB® использует, что зависит от локали системы. Используйте textscan или readtable функции со DateLocale аргумент пары "имя-значение" для определения локали, в которой функция интерпретирует даты в файле. В сложении может потребоваться указать кодировку символов файла, содержащую символы, которые не распознаются кодировкой по умолчанию вашего компьютера.

  • При чтении текстовых файлов используйте textscan , задайте кодировку файла при открытии файла с fopen. Кодировка является четвертым входным параметром fopen.

  • При чтении текстовых файлов используйте readtable function, использовать FileEncoding аргумент пары "имя-значение", чтобы задать кодировку символов, связанную с файлом.

См. также

| | | |