convertTo

Преобразование datetime значения в числовые представления

Описание

пример

X = convertTo(D,dateType) преобразует datetime значения в D в числовое представление, заданное как dateType и возвращает числовой массив. Для примера, если dateType является 'posixtime', затем convertTo преобразует каждый элемент D к количеству секунд, прошедших с эпохи 1 января 1970 года, 00:00:00 UTC.

Все числовые представления описывают даты и времена относительно точки времени, называемого эпохой. Компьютеры обычно измеряют время по количеству секунд или тактов с заданной эпохи.

пример

X = convertTo(D,'epochtime',Name,Value) задает эпоху и количество тактов в секунду, используя аргументы пары "имя-значение". Для примера, если вы задаете эпоху как 'Epoch','2001-01-01', затем каждое значение в X представляет количество секунд до или после полуночи 1 января 2001 года.

Примеры

свернуть все

Создайте массив datetime значения.

D = datetime(2019,10:12,1,12,0,0)
D = 1x3 datetime
   01-Oct-2019 12:00:00   01-Nov-2019 12:00:00   01-Dec-2019 12:00:00

Преобразование D в массив значений двойной точности, представляющих номера дат Excel. (Чтобы отобразить все цифры номеров дат, установите числовой формат отображения равным longg.)

format longg
X = convertTo(D,'excel')
X = 1×3

                   43739.5                   43770.5                   43800.5

Преобразование D в массив, представляющий даты и времена как время .NET. Поскольку время .NET должно быть беззнаковыми 64-битными целыми числами, convertTo возвращает массив, содержащий uint64 тип данных.

X = convertTo(D,'.net')
X = 1x3 uint64 row vector

   637055280000000000   637082064000000000   637107984000000000

Создайте datetime массив. Укажите, что часовой пояс является зоной для Токио.

D = datetime(2019,10:12,1,12,0,0,'TimeZone','Asia/Tokyo')
D = 1x3 datetime
   01-Oct-2019 12:00:00   01-Nov-2019 12:00:00   01-Dec-2019 12:00:00

Преобразование D. Чтобы представлять количество миллисекунд, прошедших с 1 января 2001 года, задайте Epoch и TicksPerSecond Аргументы пары "имя-значение". Можно задать эпоху как datetime значение или как текст, форматированный для определения даты и времени. Когда вы задаете 'epochtime', выходы являются массивом 64-битных целых чисел со знаком.

X = convertTo(D,'epochtime','Epoch','2001-01-01','TicksPerSecond',1000)
X = 1x3 int64 row vector

   591624000000   594302400000   596894400000

Если часовой пояс D не задано, затем convertTo функция обрабатывает элементы D как UTC раз, когда вы задаете 'epochtime'.

Входные параметры

свернуть все

Вход дат и времен, заданная как datetime массив.

Тип выхода числового представления, заданный как значение в таблице.

Значение dateType определяет тип данных выходного массива. Для некоторых числовых представлений требуются беззнаковые или подписанные 64-битные целые числа. В зависимости от этих требований, выход может иметь double, uint64, или int64 тип данных.

Значение dateType

Выходное числовое представление

Выход данных

'excel'

Количество дней с момента 0-Jan-1900, представляющих Excel® номер даты. Эта опция эквивалентна exceltime функция.

Примечание. Номера дат Excel округлены до ближайшей микросекунды.

Примечание: Excel неправильно принимает, что 1900 год является високосным. Поэтому при вычислении номеров дат Excel происходит разрыв одного дополнительного дня между 28 февраля 1900 года и 1 марта 1900 года.

double

'excel1904'

Количество дней с момента 0-Jan-1904, представляющее номер даты Excel. Эта опция эквивалентна exceltime функция.

Примечание. Номера дат Excel округлены до ближайшей микросекунды.

Примечание: Excel неправильно принимает, что 1900 год является високосным. Поэтому при вычислении номеров дат Excel происходит разрыв одного дополнительного дня между 28 февраля 1900 года и 1 марта 1900 года.

double

'juliandate'

Количество дней с полудня UTC 24-Nov-4714 BCE в пролептическом григорианском календаре, представляющем Юлианскую дату. Эта опция эквивалентна juliandate функция.

Примечание: Если часовой пояс D не задан, тогда convertTo обрабатывает значения в D как время UTC, а не локальное время. Чтобы представлять локальное время, задайте часовой пояс, используя TimeZone свойство D перед вызовом convertTo функция.

Пример: Преобразуйте D использование часового пояса для Токио.

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'juliandate')

double

'modifiedjuliandate'

Количество дней с полуночи 17-Nov-1858 UTC, представляющее Измененную Юлианскую Дату. Эта опция эквивалентна juliandate функция.

Примечание: Если часовой пояс D не задан, тогда convertTo обрабатывает значения в D как время UTC, а не локальное время. Чтобы представлять локальное время, задайте часовой пояс, используя TimeZone свойство D перед вызовом convertTo функция.

Пример: Преобразуйте D использование часового пояса для Токио.

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'modifiedjuliandate')

double

'posixtime'

Количество секунд с 1-Jan-1970 00:00:00 UTC, точка времени, известный как эпоха Unix. Эта опция эквивалентна posixtime функция.

Время Unix, также известное как время эпохи UNIX или время POSIX, является системой для измерения времени относительно эпохи Unix. (Время Unix игнорирует високосные секунды и поэтому не представляет UTC.)

Примечание: Если часовой пояс D не задан, тогда convertTo обрабатывает значения в D как время UTC, а не локальное время. Чтобы представлять локальное время, задайте часовой пояс, используя TimeZone свойство D перед вызовом convertTo функция.

Пример: Преобразуйте D, указывая, что его часовой пояс является часовым поясом для Токио.

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'posixtime')

double

'yyyymmdd'

Даты как числовые значения YYYMMDD. Для примера, 20140402 представляет 2 апреля 2014 года.

double

'datenum'

Количество дней с момента 0-Jan-0000 в пролептическом календаре ISO.

double

'ntp'

Количество «отметок времени» с 1-Jan-1900 00:00:00 UTC, представляющих временную метку протокола NTP, где каждый такт времени составляет 2 ^ -32 секунды.

uint64

'.net'

Количество «тактовых тактов» с 1-Jan-0001 00:00:00 UTC, представляющих Microsoft® Временная метка .NET, в которой каждый такт равен 100 нс.

uint64

'ntfs'

Количество «тактовых тактов» с 1-Jan-1601 00:00:00 UTC, представляющих временную метку NTFS, где каждый тактовый переключатель равен 100 нс.

uint64

'epochtime'

Количество секунд с заданной вами эпохи. Используйте эту опцию с 'Epoch' и 'TicksPerSecond' Аргументы пары "имя-значение".

Примечание: Если часовой пояс D не задан, тогда convertTo обрабатывает значения в D как время UTC, а не локальное время. Чтобы представлять локальное время, задайте часовой пояс, используя TimeZone свойство D перед вызовом convertTo функция.

Пример: Задайте часовой пояс D. Затем преобразуйте его в количество секунд, прошедших с 1 января 2001 года.

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'epochtime','Epoch','2001-01-01')

int64

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: convertTo(D,'epochtime','Epoch','2001-01-01','TicksPerSecond',1000) возвращает количество миллисекунд с начала 1 января 2001 года.

Точка, используемая для измерений времени, задается как разделенная разделенными запятой парами, состоящая из 'Epoch' и a datetime скаляр, вектор символов или строковый скаляр.

Если значение 'Epoch' является вектором символов или строковым скаляром, тогда он должен представлять дату и время в формате, который datetime функция распознает (для примера, '2001-01-01' представляя 1 января 2001 года).

Значение по умолчанию является эпохой Unix, представляющей 1 января 1970 года, 00:00:00 UTC.

Кликните такты в секунду, заданные как разделенная разделенными запятой парами, состоящая из 'TicksPerSecond' и числовой скаляр.

Введенный в R2018b