0

如何将 UNIX 时间戳转换为系统时间和日期?就我而言,美国东部时间。

4

3 回答 3

2

自 1970 年 1 月 1 日午夜起,Unix 时间戳通常以毫秒为单位,但有时自同一时刻起以秒为单位。可以通过datenum([1970 1 1 0 0 timestamp/1000])(参见相关的 Mathworks 技术说明)将它们转换为 Matlab 日期数字。如果时间戳不是以毫秒为单位,而是以秒为单位,请不要除以 1000。一旦获得 datenum,您可以使用该datestr函数将其转换为您喜欢的任何格式的字符串。

或者,您可以使用 Javajava.util.Date(timestamp)将时间戳转换为 Java 日期对象,然后使用 Date 方法将其转换为 Java 字符串,然后使用 Matlab 的char函数将其转换为 Java 字符串。

于 2013-02-24T20:14:57.847 回答
1

您可以使用datenum将几乎任何格式的时间字符串转换为序列日期数字,然后使用datestrdatevec转换为您需要的任何格式。

于 2013-02-24T04:31:39.250 回答
0

我只是遇到了同样的问题,并帮助自己完成了类似的功能

function dv=datevec_from_timestamp(ts)
% Converts a UNIX timestamp (UTC based) to a (local!) datevec which can
% then be used as usual with datestr, datenum etc.
cal=java.util.Calendar.getInstance;
cal.setTimeInMillis(ts * 1000)
dv = [cal.get(cal.YEAR) cal.get(cal.MONTH)+1 cal.get(cal.DAY_OF_MONTH) ...
    cal.get(cal.HOUR) cal.get(cal.MINUTE) cal.get(cal.SECOND)];
于 2014-11-27T15:31:35.190 回答