how to convert date to milliseconds (Binance format)

15 ビュー (過去 30 日間)
endystrike
endystrike 2021 年 11 月 30 日
回答済み: Steven Lord 2021 年 12 月 1 日
I got this function some time ago to convert datetime from Binance format into Matlab format, but now I need to do viceversa too, so to convert a certain datetime into Binance milliseconds format.
function [out_date] = date_from_binance_to_dt(raw_date)
out_date = string(datestr(datevec(raw_date/60/60/24/1000) + [1970 0 0 0 0 0]));
end
Can someone please help me to create the inverse function of mine one?
Thank you!
  3 件のコメント
endystrike
endystrike 2021 年 11 月 30 日
The only definition reported on Binance API documentation is the following: "All time and timestamp related fields are in milliseconds.".
In few words, I need to convert a MatLab datetime expression into milliseconds format, that is the one required by Binance API.
Thank you!
endystrike
endystrike 2021 年 11 月 30 日
I've found a solution:
function [binance_dateFMT] = date_from_dt_to_BinanceFMT(date_DT) %input: Matlab datetime format
binance_dateFMT = floor((datenum(date_DT)-datenum('1970', 'yyyy'))*60*60*24*1000);
end

サインインしてコメントする。

採用された回答

Steven Lord
Steven Lord 2021 年 12 月 1 日
So your input is a number of milliseconds since January 1st, 1970?
msSince1970 = 1234567;
start = datetime(1970, 01, 01);
T1 = datetime(msSince1970,'ConvertFrom', ...
'epochtime', 'Epoch', start, 'TicksPerSecond', 1000)
T1 = datetime
01-Jan-1970 00:20:34
% or
T2 = start + seconds(msSince1970/1000)
T2 = datetime
01-Jan-1970 00:20:34
check = T1==T2
check = logical
1
To go backwards, creating msSince1970 from T1:
ms = 1000*seconds(T1-start)
ms = 1234567

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by