How to convert time format
    12 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
I am trying to convert the following time format (example): 1975-092T00:04:17.237 to just seconds. I have read the page https://www.mathworks.com/help/matlab/ref/datenum.html but this specific time format is giving me trouble (it is earth received time). Has anyone worked with this time format or have a simple way of converting? My data is a matrix wherein one column is time in this format. Thank you!
Réponse acceptée
  Walter Roberson
      
      
 le 24 Avr 2019
        datetime(TheString, 'InputFormat', 'uuuu-DDD''T''HH:mm:ss.SSS')
Note that this date does not include any timezone information. The 'T' does not imply anything about time zone.
It would be common for times in this format to be immediately followed by some timezone information such as ending in Z 
6 commentaires
  Peter Perkins
    
 le 3 Mai 2019
				" I was trying to convert this to just seconds"
L, you may also mean, "convert to seconds from some reference time." Create the reference as a datetime and subtract. The result is a duration:
> dt = datetime('1975-092T00:04:17.237', 'Format', "uuuu-DDD'T'HH:mm:ss.SSS")
dt = 
  datetime
   1975-092T00:04:17.237
>> et = dt - datetime(1970,1,1)
et = 
  duration
   46008:04:17
>> et.Format = 's'
et = 
  duration
   165629057.237 sec
Walter's right that such timestamps often have a time zone suffix. Also "earth received time" makes me think that maybe you care about leap seconds, in which case you might want to set the result's timezone to 'UTCLeapSeconds':
>> et2 = dt - datetime(1970,1,1,'TimeZone','UTCLeapSeconds')
pt2 = 
  duration
   46008:04:21
>> et2.Format = 's'
et2 = 
  duration
   165629061.237 sec
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Dates and Time dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



