2010-10-17 6 views

Respuesta

11

Uso DATESTR

>> datestr(40189) 
ans = 
12-Jan-0110 

Desafortunadamente, Excel empieza a contar en 1-Ene-1900. Averiguar cómo convertir fechas de serie de Matlab para Excel utilizando DATENUM

>> datenum(2010,1,11) 
ans = 
     734149 
>> datenum(2010,1,11)-40189 
ans = 
     693960 
>> datestr(40189+693960) 
ans = 
11-Jan-2010 

En otras palabras, para convertir cualquier fecha de serie Excel, llame

datestr(excelSerialDate + 693960) 

EDITAR

Para obtener el fecha en formato mm/dd/aaaa, llame al datestr con el formato especificado

excelSerialDate = 40189; 
datestr(excelSerialDate + 693960,'mm/dd/yyyy') 
ans = 
01/11/2010 

Además, si usted quiere deshacerse del cero para el mes, puede utilizar REGEXPREP de arreglar las cosas

excelSerialDate = 40189; 
regexprep(datestr(excelSerialDate + 693960,'mm/dd/yyyy'),'^0','') 
ans = 
1/11/2010 
+0

bien .. Voy a tratar de que fuera :) – mtlb

+2

Tenga en cuenta que algunos archivos de Excel comienzan su época en 1904, no en 1900. (Consulte http://support.microsoft.com/kb/180162) Si está escribiendo un código de conversión de fecha genérico de Excel/Matlab, deberá probar o proporcionar una entrada para indicar el caso especial de 1904. La compensación de datenum es 695422 para 1904 archivos de época de Excel. –

+0

@Andrew Janke: Gah! Muchas gracias por señalar esto. – Jonas

Cuestiones relacionadas