1970 matla 时间_在Matlab中将Epoch转换为Date

假设,您从向量 time_unix 开始,然后:

>> time_unix = 1339116554872; % example time

>> time_reference = datenum('1970', 'yyyy');

>> time_matlab = time_reference + time_unix / 8.64e7;

>> time_matlab_string = datestr(time_matlab, 'yyyymmdd HH:MM:SS.FFF')

time_matlab_string =

20120608 00:49:14.872

笔记:

1)查看matlab时间的定义 .

2)8.64e7是一天中的毫秒数 .

3)Matlab不应用任何时区移位,因此结果是相同的UTC时间 .

4)向后转换的例子:

>> matlab_time = now;

>> unix_time = round(8.64e7 * (matlab_time - datenum('1970', 'yyyy')))

unix_time =

1339118367664

总而言之,这里有两个功能:

function tm = unix2matlab(tu)

tm = datenum('1970', 'yyyy') + tu / 864e5;

end

function tu = matlab2unix(tm)

tu = round(864e5 * (tm - datenum('1970', 'yyyy')));

end

这里的matlab时间是数字 . 您始终可以使用datestr()将其转换为字符串

Update 为纳秒

time_unix_nanos = 1339116554872666666;

millis = round(time_unix_nanos / 1e6);

nanos = time_unix_nanos - 1e6 * millis;

time_matlab = unix2matlab(millis);

s = [datestr(time_matlab, 'yyyymmdd HH:MM:SS.FFF'), num2str(nanos)];

s =

20120608 00:49:14.872666666

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值