Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Convertir entre matrices de fecha y hora, números y texto

Visión general

es el mejor tipo de datos para representar puntos en el tiempo. valores tienen formatos de visualización flexibles y una precisión de nanosegundos, y pueden tener en cuenta las zonas horarias, el horario de verano y los segundos intercalares.datetimedatetime Sin embargo, si trabaja con código creado en R2014a o anterior, o si comparte código con otras personas que utilizan dicha versión, es posible que tenga que trabajar con fechas y horas almacenadas en uno de estos tres formatos:MATLAB®

  • — Un vector de caracteres.Fecha cadena

    Example:  Thursday, August 23, 2012  9:45:44.946 AM
  • — Un vector numérico de 1 por 6 que contiene el año, el mes, el día, la hora, el minuto y el segundo.Fecha Vector

    Example:  [2012   8    23    9    45    44.946] 
  • — Un número único igual al número de días transcurridos desde el 0 de enero de 0000 en el calendario proléptico ISO.Número de fecha serial Los números de fecha de serie son útiles como entradas para algunas funciones que no aceptan los tipos de datos o.MATLABdatetimeduration

    Example:  7.3510e+005

Las cadenas de fecha, los vectores y los números se pueden almacenar como matrices de valores. Almacene varias cadenas de fecha en una matriz de vectores de caracteres, varios vectores de fecha en una matriz a-por-6 y varios números de fecha de serie en una matriz.m

Puede convertir cualquiera de estos formatos a una matriz utilizando la función.datetimedatetime Si el código existente espera un número de fecha serial o un vector de fecha, utilice las funciones o, respectivamente, para convertir una matriz al formato de datos esperado.MATLABdatenumdatevecdatetime Para convertir una matriz en vectores de caracteres, utilice las funciones o.datetimecharcellstr

A partir de R2016b, también puede convertir una matriz en una matriz de cadenas con la función.datetimestring

Convertir entre DateTime y vectores de caracteres

Una cadena de fecha puede ser un vector de caracteres compuesto por campos relacionados con una fecha y/o hora específicas. Hay varias formas de representar fechas y horas en formato de texto. Por ejemplo, todos los siguientes son vectores de caracteres que representan el 23 de agosto de 2010 a las 04:35:42 P.M.:

' 23-Aug-2010 04:35:06 PM ' ' miércoles, 23 de agosto ' ' 08/23/10 16:35 ' ' Aug 23 16:35:42.946 ' 

Una cadena de fecha incluye caracteres que separan los campos, como el guión, el espacio y los dos puntos utilizados aquí:

d = ' 23-Aug-2010 16:35:42 ' 

Convierta una o más cadenas de fecha en una matriz mediante la función.datetimedatetime Para obtener el mejor rendimiento, especifique el formato de las cadenas de fecha de entrada como entrada.datetime

Nota

Los especificadores que se utilizan para describir los formatos de fecha y hora difieren de los especificadores que la, y las funciones aceptan.datetimedatestrdatevecdatenum

t = datetime(d,'InputFormat','dd-MMM-yyyy HH:mm:ss')
t = DateTime 23-Aug-2010 16:35:42 

Aunque la cadena de fecha y el escalar, parecen similares, no son iguales.ddatetimet Ver el tamaño y el tipo de datos de cada variable.

whos d t
  Name      Size            Bytes  Class       Attributes    d         1x20               40  char                     t         1x1                17  datetime               

Convierta una matriz en un vector de caracteres mediante o.datetimecharcellstr Por ejemplo, convierta la fecha y hora actuales en una marca de tiempo para anexarla a un nombre de archivo.

t = datetime('now','Format','yyyy-MM-dd''T''HHmmss')
t =     datetime     2017-01-03T151105 
S = char(t); filename = ['myTest_',S]
filename =      'myTest_2017-01-03T151105' 

Convertir entre DateTime y String arrays

A partir de R2016b, puede utilizar la función para crear una matriz de cadenas.string Si una matriz de cadena contiene cadenas de fecha, puede convertir la matriz de cadenas en una matriz con la función.datetimedatetime De forma similar, puede convertir una matriz en una matriz de cadenas con la función.datetimestring

Convierta una matriz de cadenas. muestra las cadenas entre comillas dobles.MATLAB Para obtener el mejor rendimiento, especifique el formato de las cadenas de fecha de entrada como entrada.datetime

Str = String ({' 24-Oct-2016 11:58:17 ';               ' 19-Nov-2016 09:36:29 ';               ' 12-Dec-2016 10:09:06 '}) 
Str = 3 × 1 array de cadenas "24-Oct-2016 11:58:17" "19-Nov-2016 09:36:29" "12-Dec-2016 10:09:06"
t = datetime(str,'InputFormat','dd-MMM-yyyy HH:mm:ss')
t = 3 × 1 array DateTime 24-Oct-2016 11:58:17 19-Nov-2016 09:36:29 12-Dec-2016 10:09:06 

Convierta un valor en una cadena.datetime

t = DateTime (' 25-Dec-2016 06:12:34 '); Str = cadena (t)
Str = "25-Dec-2016 06:12:34"

Convertir entre fecha y hora vectores

Un vector de fecha es un vector de 1 por 6 de números de doble precisión. Los elementos de un vector de fecha tienen un valor entero, excepto el elemento seconds, que puede ser fraccionario. Los valores de tiempo se expresan en notación de 24 horas. No hay ninguna configuración de AM o PM.

Un vector de fecha se organiza en el siguiente orden:

year month day hour minute second

El siguiente vector de fecha representa 10:45:07 A.M. el 24 de octubre de 2012:

[2012  10  24  10  45  07]

Convierta uno o más vectores de fecha a una matriz utilizando la función:datetimedatetime

t = datetime([2012  10  24  10  45  07])
t = DateTime 24-Oct-2012 10:45:07 

En lugar de utilizar para extraer componentes de valores DATETIME, utilice funciones como, y en su lugar:datevecyearmonthday

y = year(t)
y =          2012

Como alternativa, acceda a la propiedad correspondiente, por ejemplo, para los valores de año:t.Year

y = t.Year
y =          2012

Convierta números de fecha serie a DateTime

Un número de fecha en serie representa una fecha de calendario como el número de días que ha transcurrido desde una fecha base fija. En, la fecha serial número 1 es el 1 de enero, 0000.MATLAB

El tiempo en serie puede representar fracciones de días a partir de la medianoche; por ejemplo, 6 p.m. equivale a 0,75 días seriales. Así que el vector de caracteres en es la fecha número 731885,75.'31-Oct-2003, 6:00 PM'MATLAB

Convierta uno o más números de fecha en serie en una matriz utilizando la función.datetimedatetime Especifique el tipo de número de fecha que se va a convertir:

t = datetime(731885.75,'ConvertFrom','datenum')
t = DateTime 31-Oct-2003 18:00:00 

Convierta matrices DateTime a valores numéricos

Algunas funciones aceptan tipos de datos numéricos, pero no valores DATETIME como entradas.MATLAB Para aplicar estas funciones a los datos de fecha y hora, convierta valores DATETIME a valores numéricos significativos. A continuación, llame a la función. Por ejemplo, la función acepta entradas, pero no entradas.logdoubledatetime Supongamos que tiene una serie de fechas que abarcan el curso de un estudio o experimento de investigación.datetime

t = datetime(2014,6,18) + calmonths(1:4)
t = 1 × 4 array DateTime 18-Jul-2014 18-Aug-2014 18-Sep-2014 18-Oct-2014 

Reste el valor de origen. Por ejemplo, el valor de origen puede ser el día inicial de un experimento.

dt = t - datetime(2014,7,1)
dt =     1×4 duration array      408:00:00   1152:00:00   1896:00:00   2616:00:00 

es una matriz.dtduration Convierta a una matriz de valores en unidades de años, días, horas, minutos o segundos con la función,,, o, respectivamente.dtdoubleyearsdayshoursminutesseconds

x = hours(dt)
x =           408        1152        1896        2616

Pase la matriz como entrada a la función.doublelog

y = log(x)
y =      6.0113    7.0493    7.5475    7.8694

Consulte también

| | | |

Temas relacionados