Примените эти лучшые методы при совместном использовании кода, который обрабатывает даты и время с пользователями MATLAB® в других локалях. Эти методы гарантируют, что тот же код производит то же выходное отображение и что выходные файлы, содержащие даты и время, читаются правильно в системах в разных странах или с различными настройками языка.
Создайте независимую от языка стоимость datetime. Таким образом, создайте стоимость datetime, которая использует числа месяца, а не имена месяца, такой как 01 вместо января. Избегайте использования дня недельных имен.
Например, сделайте это:
t = datetime('today','Format','yyyy-MM-dd')
t = datetime
2020-01-29
вместо этого:
t = datetime('today','Format','eeee, dd-MMM-yyyy')
t = datetime
Wednesday, 29-Jan-2020
Отобразите час с помощью 24-часового обозначения часов, а не 12-часового обозначения часов. Используйте 'HH'
идентификаторы при определении формата отображения для значений datetime.
Например, сделайте это:
t = datetime('now','Format','HH:mm')
t = datetime
12:02
вместо этого:
t = datetime('now','Format','hh:mm a')
t = datetime
12:02 PM
При определении формата отображения для получения информации о часовом поясе используйте Z
или X
идентификаторы вместо строчного z
избегать создания имен часового пояса, которые не могут быть распознаны на других языках или областях.
Присвойте часовой пояс t
.
t.TimeZone = 'America/New_York';
Задайте независимый от языка формат отображения, который включает часовой пояс.
t.Format = 'dd-MM-yyyy Z'
t = datetime
29-01-2020 -0500
Если вы совместно используете файлы, но не код, вы не должны писать независимый от локали код, в то время как вы работаете в MATLAB. Однако, когда вы пишете в файл, гарантируете, что любой текст, представляющий даты и времена, независим от языка. Затем другие пользователи MATLAB могут считать файлы легко, не имея необходимость задавать локаль, в которой можно интерпретировать данные о дате и времени.
Задайте соответствующий формат для текста, представляющего даты и времена, когда вы будете использовать char
или cellstr
функции. Например, преобразуйте два значения datetime в массив ячеек из символьных векторов с помощью cellstr
. Задайте формат и локаль, чтобы представлять день, месяц и год каждого значения datetime как текст.
t = [datetime('today');datetime('tomorrow')]
t = 2x1 datetime
29-Jan-2020
30-Jan-2020
S = cellstr(t,'dd. MMMM yyyy','de_DE')
S = 2x1 cell
{'29. Januar 2020'}
{'30. Januar 2020'}
S
массив ячеек из символьных векторов, представляющий даты на немецком языке. Можно экспортировать S
к текстовому файлу, чтобы использовать с системами в de_DE
локаль.
Можно считать текстовые файлы, содержащие даты и время на языке кроме языка, который использует MATLAB®, который зависит от системной локали. Используйте textscan
или readtable
функции с DateLocale
аргумент пары "имя-значение", чтобы задать локаль, в которой функция интерпретирует даты в файле. Кроме того, вы можете должны быть задать кодировку символов файла, который содержит символы, которые не распознаны кодировкой по умолчанию вашего компьютера.
При чтении текстовых файлов с помощью textscan
функционируйте, задайте кодирование файла при открытии файла с fopen
. Кодирование является четвертым входным параметром к fopen
.
При чтении текстовых файлов с помощью readtable
функция, используйте FileEncoding
аргумент пары "имя-значение", чтобы задать кодировку символов, сопоставленную с файлом.