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

Запись независимого от локали кода даты и времени

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

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

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

t = datetime('today','Format','yyyy-MM-dd')
t = datetime
   2019-02-21

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

t = datetime('today','Format','eeee, dd-MMM-yyyy')
t = datetime
   Thursday, 21-Feb-2019

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

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

t = datetime('now','Format','HH:mm')
t = datetime
   20:33

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

t = datetime('now','Format','hh:mm a')
t = datetime
   08:33 PM

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

Присвойте часовой пояс t.

t.TimeZone = 'America/New_York';

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

t.Format = 'dd-MM-yyyy Z'
t = datetime
   21-02-2019 -0500

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

Запись дат в других языках

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

t = [datetime('today');datetime('tomorrow')]
t = 2x1 datetime array
   21-Feb-2019
   22-Feb-2019

S = cellstr(t,'dd. MMMM yyyy','de_DE')
S = 2x1 cell array
    {'21. Februar 2019'}
    {'22. Februar 2019'}

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

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

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

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

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

Смотрите также

| | | |