如何在Matlab中使用Unix时间戳?

时间:2012-08-31 08:37:02

标签: matlab unix-timestamp

我有一些带有Unix时间戳的数据文件(在这种情况下,是自1970年1月1日00:00 00:00以来的毫秒数)。我想在Matlab中将这些转换为人性化的日期/时间字符串(例如,2012年8月31日11:36:24)。有没有一种简单的方法在Matlab中执行此操作,或者我最好使用外部库(例如java.text.SimpleDateFormat)?

2 个答案:

答案 0 :(得分:30)

怎么样

date = datestr(unix_time/86400 + datenum(1970,1,1))

如果以秒为单位给出unix_time,则unix_time/86400将给出自1970年1月1日以来的天数。再添加Matlab使用的偏移量datenum({ {1}}),你有自0000年1月1日以来的天数。这可以很容易地被Matlab的datenum(0000,1,1) == 1转换成人类可读的形式。

如果你有毫秒,只需使用

datestr

包含在函数中,这些将是

date = datestr(unix_time/86400/1000 + datenum(1970,1,1))

答案 1 :(得分:27)

较新版本的MATLAB(在R2015a中验证)具有日期时间类型,可用于处理和格式化日期和时间。您可以使用

将UNIX时间戳转换为MATLAB日期时间
dt = datetime( unix_time, 'ConvertFrom', 'posixtime' );

然后像以前一样使用datestr格式化为字符串

datestr( dt )