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

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

Примените эти лучшые методы при совместном использовании кода, который обрабатывает даты и время с пользователями 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 функция, используйте FileEncoding аргумент пары "имя-значение", чтобы задать кодировку символов, сопоставленную с файлом.

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

| | | |