来自datenum的错误转换

时间:2016-04-14 12:53:04

标签: matlab datetime

在串行接收过程中,我有一个传入数据

pressure ={'2016-04-14'    '14:18:48'    '321'}
datenum(datestr(cellfun(@(x,y) [x y],pressure(1),pressure(2),'un',0)));

这里是从上一步开始的日期时间序列的结果,

ans = 7.3648e+05`

当我转换回来时,结果将给出一个不同的未来时间:

datestr(ans)
ans = 29-May-2016 22:18:48

这个工作错了吗?

1 个答案:

答案 0 :(得分:2)

组合日期和小时时,需要确保日期和小时之间有空格。您的cellfun调用会创建字符串'2016-04-1414:18:48',然后会被错误解释。

cellfun(@(x,y) [x ' ' y],pressure(1),pressure(2),'un',0))解决了这个问题。请注意,您可以将第一个电话放到datestr,然后写

numericDate = datenum(cellfun(@(x,y) [x ' ' y],pressure(1),pressure(2),'un',0)))