posix/unix time to datetime
33 ビュー (過去 30 日間)
古いコメントを表示
Pablo Armañac Julián
2023 年 3 月 20 日
コメント済み: Pablo Armañac Julián
2023 年 3 月 20 日
Hi!
I just purchased a device to register some signals and I need to know the TimeStamp of the samples.
The program gives me two options to export the data (.csv and .mat).
The problem comes with the .mat format. I choose to export the data synchronized, with unix format, and I don't get the same datetime as if I export it in csv (which is the datetime that I know is correct). For convenience I need to export the data into a .mat, and also I want to know why I don't get the same datetimes. I've been looking for this and can't find the solution. BTW, I need millisecond resolution.
For example:
0) From the .csv (which I know it is correct), the datetime samples are: (var: TimestampSync_FormattedUnix_CAL)
2023/03/20 12:06:04.100
2023/03/20 12:06:04.102
2023/03/20 12:06:04.104
...
1) From the .mat I get: ( var: TimestampSync_Unix_CAL)
1679310364100.53
1679310364102.48
1679310364104.43
...
2) Which I try to convert to datetime as:
formatted_timeStamp = datetime ( TimestampSync_Unix_CAL , 'convertfrom','posixtime' , 'Format','dd-MMM-yyyy HH:mm:ss.SSS');
and the result is:
'24-Mar-55185 13:08:20.526'
'24-Mar-55185 13:08:22.480'
'24-Mar-55185 13:08:24.433'
...
I attach the variables I'm using in case it helps.
Thank you very much in advance
0 件のコメント
採用された回答
Stephen23
2023 年 3 月 20 日
編集済み: Stephen23
2023 年 3 月 20 日
Unix time is actually defined as the number of seconds since the epoch. The times you show are the milliseconds since the epoch. MATLAB uses the standard UNIX/POSIX definition.
You can easily make the conversion yourself, here are two approaches:
V = [1679310364100.53;1679310364102.48;1679310364104.43];
D = datetime(V/1000, 'convertfrom','posixtime', 'Format','dd-MMM-yyyy HH:mm:ss.SSS')
E = datetime(1970,1,1);
D = datetime(V, 'convertfrom','epochtime', 'Epoch',E,'TicksPerSecond',1000, 'Format','dd-MMM-yyyy HH:mm:ss.SSS')
3 件のコメント
Steven Lord
2023 年 3 月 20 日
I wouldn't expect you to need to include an extra hour in the data. Perhaps this is a time zone effect? Or maybe Daylight Savings Time?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Dates and Time についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!