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