将时间戳转换为整数

时间:2014-02-24 00:08:43

标签: matlab datetime

如何将以下时间戳转换为整数形式,理想情况是1970年后的毫秒......

       s = '2014-02-11-00_40_05'

我尝试过使用:

       out = datevec(s)

但是我收到一条错误消息,说“日期字段过多” 2014-02-11-00_40_0'

由于

2 个答案:

答案 0 :(得分:4)

使用格式说明符尝试datenum

>> datenum(s,'yyyy-mm-dd-hh_MM_ss')

ans =

   7.3564e+05

转换为纪元:

mtime = datenum(s,'yyyy-mm-dd-hh_MM_ss');
unix_time = round(8.64e7 * (mtime - datenum('1970', 'yyyy')))

答案 1 :(得分:3)

假设您的示例中的02是月份(否则以明显的方式更改格式字符串):

datenum('2014-02-11-00_40_05','yyyy-mm-dd-HH_MM_SS')

在Jan-1-0000之后给你几秒钟。从那以后很容易在1970年后获得毫秒:

( datenum('2014-02-11-00_40_05','yyyy-mm-dd-HH_MM_SS') - ...
  datenum('1970-01-01-00_00_00','yyyy-mm-dd-HH_MM_SS') ) * 1000