Azzera filtri
Azzera filtri

Inverse of posix time

17 visualizzazioni (ultimi 30 giorni)
NoNo
NoNo il 28 Set 2015
Commentato: Peter Perkins il 28 Lug 2020
Hello,
O was wondering if there is a function in matlab that does the opposite as posix time. Indeed, I have a UNIX time (1443002431.224) and I want to convert it into a date with hour, minute and second.
How can I do it ? Does it exist a function to do this ?
Thank you very much for your help !!
NoNo

Risposta accettata

Guillaume
Guillaume il 28 Set 2015
d = datetime(1443002431.224, 'ConvertFrom', 'posixtime')
  4 Commenti
Haris K.
Haris K. il 16 Mag 2020
@Peter Perkins if you format the output of the resulted datetime as 'dd-MMM-yyyy HH:mm:ss.SSS' both:
unix_t = 1443002431.224;
datetime(unix_t, 'ConvertFrom', 'posixtime')
datetime(round(1000*unix_t),'ConvertFrom','epochtime',"TicksPerSecond",1000)
return the same output, i.e. 23-Sep-2015 10:00:31.224. So what is the round-off introduced?
Peter Perkins
Peter Perkins il 28 Lug 2020
Well, I misspoke, sort of.
The round-off is introduced in unix_t = 1443002431.224. That is not a value that is representable exactly in floating point. However, because of the extremely smart people who created IEEE754 etc. way back when, it turns out that 1443002431.224*1000 is exactly 1443002431224. And that multiplication happens inside datetime, without you needing to do it as in my code. That's what saves this.
I think that should be true for anything specified to milliseconds.

Accedi per commentare.

Più risposte (2)

Emre Güngör
Emre Güngör il 29 Nov 2018
You need 2018 version
  1 Commento
Steven Lord
Steven Lord il 29 Nov 2018
Not true. datetime was introduced in release R2014b and the documentation for that function in that release lists the 'ConvertFrom', 'posixtime' syntax. When I run Guillaume's code in release R2014b I receive the same answer as if I created a datetime for January 1st, 1970 and added that many seconds to it. Both those answers matched the results I received for those same computations in release R2018b and the result I received using an online UNIX epoch converter.

Accedi per commentare.


Anh Anh
Anh Anh il 10 Dic 2019
  1 Commento
Rik
Rik il 10 Dic 2019
(rescued from spam filter)
Even though this isn't spam, it isn't a real answer either. There are Matlab tools available that do this, so it is not necessary to use an external website to do this conversion.

Accedi per commentare.

Categorie

Scopri di più su Dates and Time in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by