主要内容

日期和时间转换为朱利安日期或POSIX时间

您可以转换datetime数组来表示时间点在专业数字格式。一般来说,这些格式代表一个时间点上的秒数或几天以来运行指定的起点。例如,朱利安日期的天数和分数的日子以来运行朱利安时期的开始。POSIX®时间的秒数,时间就是1 - 1月- 1970 UTC(协调世界时)。MATLAB®提供了juliandateposixtime功能转换datetime数组朱利安日期和POSIX倍。

datetime数组不需要有一个时区,将“unzoned”datetime值朱利安日期或POSIX时间会导致意想不到的结果。为了确保预期的结果,之前指定时区转换。

之前指定时区转换

您可以指定一个时区datetime数组,但是你不需要这样做。实际上,默认情况下datetime函数创建一个“unzoned”datetime数组中。

创建一个datetime值为当前日期和时间。

d = datetime (“现在”)
d =datetime31日- 8月- 2022 03:27:51

d是由当地时间在您的机器上,也没有与之关联的时区。在许多情况下,你可能认为你可以unzoned治疗时代datetime数组作为当地时间。然而,juliandateposixtime职能治疗unzoned的时代datetime数组作为UTC时间,不是当地的情况。为了避免任何歧义,建议您避免使用juliandateposixtime在unzoneddatetime数组。例如,避免使用posixtime (datetime(“现在”))在您的代码中。

如果你的datetime数组的值并不代表UTC时间,指定时区使用时区名称-值对,这样的论点juliandateposixtime解释datetime正确的价值观。

d = datetime (“现在”,“时区”,“美国/ New_York”)
d =datetime31日- 8月- 2022 03:27:51

作为一种替代方法,您可以指定时区属性在您创建数组。

d。时区=“美国/ Los_Angeles”
d =datetime31日- 8月- 2022 00:27:51

时区的完整列表,使用时区函数。

划和Unzoned Datetime值转换为朱利安日期

朱利安日期的天数(包括部分天)自11月24日中午,公元前4714年,在预期的公历1月1日或在预期的公元前4713年,罗马儒略历。转换datetime数组朱利安日期,使用juliandate函数。

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

DZ = datetime (“2016-07-29 10:05:24”)+ calmonths (1:3);DZ。时区=“美国/ New_York”
DZ =1 x3 datetime9月29日- 8月- 2016 10:05:24 29 - 2016 10:05:24 29日- 10月- 2016 10:05:24

转换D相当于朱利安日期。

格式longGJDZ = juliandate (DZ)
JDZ =1×32457630.08708333 2457661.08708333 2457691.08708333

创建一个unzoned副本DZ。转换D相当于朱利安日期。作为D没有时区,juliandate将倍UTC时间。

D = DZ;D。时区=”“;JD = juliandate (D)
JD =1×32457629.92041667 2457660.92041667 2457690.92041667

比较JDZJD。差异是等于UTC和之间的时区偏移美国/ New_York时区部分天。

JDZ - JD
ans =1×30.166666666511446 0.166666666511446 0.166666666511446

将分区和POSIX倍Unzoned Datetime值

POSIX时间的秒数(包括分数秒)时间就是1 - 1月- 1970 UTC(协调世界时),忽视闰秒。转换datetime数组POSIX倍使用posixtime函数。

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

DZ = datetime (“2016-07-29 10:05:24”)+ calmonths (1:3);DZ。时区=“美国/ New_York”
DZ =1 x3 datetime9月29日- 8月- 2016 10:05:24 29 - 2016 10:05:24 29日- 10月- 2016 10:05:24

转换D相当于POSIX倍。

PTZ = posixtime (DZ)
PTZ =1×31472479524 1475157924 1472479524

创建一个unzoned副本DZ。转换D相当于POSIX倍。作为D没有时区,posixtime将倍UTC时间。

D = DZ;D。时区=”“;PT = posixtime (D)
PT =1×31472465124 1475143524 1472465124

比较PTZPT。差异是等于UTC和之间的时区偏移美国/ New_York时区在秒。

PTZ - PT
ans =1×314400 14400 14400

另请参阅

|||

相关的话题