Main Content

posixtime

MATLAB 日期时间转换为 POSIX 时间

说明

示例

p = posixtime(t) 返回等同于 t 中的 datetime 值的 POSIX® 时间。POSIX 时间为自 UTC(协调世界时)1970 年 1 月 1 日 00:00:00 以来经过的秒数(包括小数秒),忽略闰秒。pdouble 数组。

  • 如果未指定 t 的时区,则 posixtime 会将 t 中的时间作为 UTC 时间。此解释可能不同于您对其他上下文中的“未设置时区的”datetime 数组的处理方式。例如,您可能认为 datetime('now') 会返回您的本地时间。但 posixtime 将其解释为 UTC 时间。

  • 如果指定了 t 的时区,则 posixtime 会使用时区偏移量来计算相对于 UTC 的 POSIX 时间。

最佳做法是在调用 posixtime 之前指定 t 的时区。

示例

全部折叠

创建一个 datetime 值,并将其转换为同等的 POSIX® 时间。显示分区和未分区 datetime 值之间的 POSIX 时间差异。最佳做法是在调用 posixtime 之前指定 datetime 数组的时区。

创建一个 datetime 数组并指定其时区。

t1 = datetime('2016-07-29 10:05:24') + calmonths(1:3);
t1.TimeZone = 'America/New_York'
t1 = 1x3 datetime
   29-Aug-2016 10:05:24   29-Sep-2016 10:05:24   29-Oct-2016 10:05:24

t1 转换为同等的 POSIX 时间。posixtime 在计算 POSIX 时间时会考虑时区偏移。

format longG
p1 = posixtime(t1)
p1 = 1×3

                1472479524                1475157924                1477749924

创建一个 datetime 数组,其中的值与 t1 相同,但未设置时区。将其转换为同等的 POSIX 时间。posixtime 会将 t2 中的时间作为 UTC 时间,并且没有时区偏移。

t2 = datetime('2016-07-29 10:05:24') + calmonths(1:3);
p2 = posixtime(t2)
p2 = 1×3

                1472465124                1475143524                1477735524

显示 p2p1 之间的差异。差异等于 UTC 和 t1 时区之间的时间偏移量,以秒为单位。

p2 - p1
ans = 1×3

      -14400      -14400      -14400

输入参数

全部折叠

日期时间输入,指定为 datetime 数组。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2014b 中推出