Can I set a datetime locale for readtable in a script?
    2 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    dormant
      
 el 12 de Feb. de 2025
  
    
    
    
    
    Comentada: dormant
      
 el 12 de Feb. de 2025
            I am having problems reading datetimes with readtable. This is on a set of csv files where the date and time formats differ slightly. (I have no control over the file format.) 
One file might have:
12/01/2024 01:00:05, 1
Another file might have:
12/1/2024 1:00:05, 1
All dates are in UK-style format. My default locale (on Linux) is en_US.utf8. 
When I use readtable, MATLAB correctly parses the date format as being UK-style for most of the files. But for some files, it uses the US format.  This if for files where the day number never goes above 12.
I don't want to change the default Linux locale, or the default MATLAB locale, because I have existing scripts that read dates in US-style format.
How can I change this one script to force MATLAB to use UK-style dates? Specifying the format as "dd/MM/yyyy :hh:mm:ss" doesn't seem to work because of the lack of zero-padding at times.
0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 12 de Feb. de 2025
        Note that "dd/MM/yyyy :hh:mm:ss" uses 12-hour format (using hh for the hours) without the AM/PM indicator.  To use 24-hour format, use HH for the hours.  
If the AM/PM indicator is the ‘1’ it might be necessary to programatically change that (using strrep or something similar), since I cannot find any reference to it in the documentation.  
3 comentarios
  Walter Roberson
      
      
 el 12 de Feb. de 2025
				datetime(["12/1/2024 1:00:05", "12/01/2024 01:00:05"], 'InputFormat', 'dd/MM/yyyy HH:mm:ss')
Más respuestas (0)
Ver también
Categorías
				Más información sobre Dates and Time en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


