rob*_*ess 15 matlab unix-timestamp
我有一些带有Unix时间戳的数据文件(在这种情况下,自1970年1月1日00:00 00:00以来的毫秒数).我想在Matlab中将这些转换为人性化的日期/时间字符串(例如31-Aug-2012 11:36:24).有没有一种简单的方法在Matlab中执行此操作,或者我最好使用外部库(例如java.text.SimpleDateFormat)?
Rod*_*uis 31
怎么样
date = datestr(unix_time/86400 + datenum(1970,1,1))
Run Code Online (Sandbox Code Playgroud)
如果unix_time以秒为单位给出,unix_time/86400将给出自1970年1月1日以来的天数.加上Matlab datenum(datenum(0000,1,1) == 1)使用的偏移量,你有自0000年1月1日以来的天数.这可以很容易地转换为人类- Matlab的可读表格datestr.
如果你有毫秒,只需使用
date = datestr(unix_time/86400/1000 + datenum(1970,1,1))
Run Code Online (Sandbox Code Playgroud)
包含在功能中,这些将是
function dn = unixtime_to_datenum( unix_time )
dn = unix_time/86400 + 719529; %# == datenum(1970,1,1)
end
function dn = unixtime_in_ms_to_datenum( unix_time_ms )
dn = unix_time_ms/86400000 + 719529; %# == datenum(1970,1,1)
end
datestr( unixtime_to_datenum( unix_time ) )
Run Code Online (Sandbox Code Playgroud)
Cla*_*ark 27
较新版本的MATLAB(在R2015a中验证)具有日期时间类型,可用于处理和格式化日期和时间.您可以使用UNIX将UNIX时间戳转换为MATLAB日期时间
dt = datetime( unix_time, 'ConvertFrom', 'posixtime' );
Run Code Online (Sandbox Code Playgroud)
然后像以前一样使用datestr格式化为字符串
datestr( dt )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43143 次 |
| 最近记录: |