将日期和时间转换为儒略日期或POSIX时间

你可以转换约会时间用专门的数字格式表示时间点的数组。通常,这些格式表示一个时间点,即从指定的起始点开始经过的秒数或天数。例如,儒略日是自儒略时期开始以来经过的天数和小数天。POSIX®时间是自00:00:00 1- 1970 UTC(通用协调时间)以来经过的秒数。MATLAB®提供了juliandateposixtime功能转换约会时间数组到朱利安日期和POSIX时间。

约会时间数组不需要有时区,转换为“未分区”约会时间朱利安日期或POSIX时间的值可能会导致意外的结果。要确保得到预期的结果,请在转换之前指定时区。

在转换之前指定时区

你可以指定一个时区约会时间,但您不需要这样做。事实上,默认情况下约会时间函数创建一个“未分区”约会时间数组中。

创建一个约会时间当前日期和时间的值。

d = datetime (“现在”)
d =约会时间2020年- 2月29日00:13:04

d是由您机器上的本地时间构造的,没有与之关联的时区。在很多情况下,你可能会认为你可以把时间放在一个没有分区的地方约会时间数组作为本地时间。然而,juliandateposixtime函数处理未分区的时间约会时间数组作为UTC时间,而不是本地时间。为了避免歧义,建议您避免使用juliandateposixtime在unzoned约会时间数组。例如,避免使用posixtime(日期时间( '现在'))在您的代码中。

如果你的约会时间数组中有不表示UTC时间的值,请使用时区名称 - 值对的参数,使得juliandateposixtime解释约会时间正确的价值观。

d = datetime (“现在”,“时区”,“美国/ New_York”)
d =约会时间2020年- 2月29日00:13:04

另一种方法是,您可以指定时区创建数组后的属性。

d.TimeZone =“美国/洛杉矶”
d =约会时间2020年- 2月28日21:13:04

若要查看完整的时区列表,请使用时区函数。

将分区和未分区的日期时间值转换为朱利安日期

Julian日期是从中午11月24日,4714 BCE天(含小数天)的数量,在proleptic公历,或1月1日,4713 BCE,在proleptic儒略历。转换约会时间阵列朱利安日期,使用juliandate函数。

创建一个约会时间数组并指定其时区。

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

转换D相当于朱利安年代。

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

创建的不分区副本DZ。转换D相当于朱利安年代。作为D有没有时区,juliandate将时报视为UTC时间。

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

比较JDZJD。时差等于协调世界时和…之间的时区时差美国/纽约分数天的时区。

JDZ - JD
ans =1×30.166666666511446 0.166666666511446 0.166666666511446

转换分区和不分区datetime值来POSIX时报

POSIX时间是自00:00:00 1- 1970 UTC(通用协调时间)以来经过的秒数(包括小数秒),忽略闰秒。转换约会时间数组到POSIX的次数,使用posixtime函数。

创建一个约会时间数组并指定其时区。

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

转换D等于POSIX乘以。

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

创建的不分区副本DZ。转换D等于POSIX乘以。作为D有没有时区,posixtime将时报视为UTC时间。

D = DZ;D。时区=;PT = posixtime (D)
PT =1×31472465124 1475143524 1477735524

比较PTZPT。时差等于协调世界时和…之间的时区时差美国/纽约时区以秒为单位。

PTZ - PT
ans =1×314400 14400 14400

另请参阅

|||

相关话题