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