主要内容

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

你可以转换datetime数组以专门的数字格式表示时间点。通常,这些格式将时间点表示为从指定的起始点开始经过的秒数或天数。例如,儒略日期是自儒略时期开始以来经过的天数和小数天数。POSIX®时间是自00:00:00 1-Jan-1970 UTC(通用协调时间)以来经过的秒数。MATLAB®提供了Juliandate.posixtime函数转换datetime数组的儒略日期和POSIX时间。

尽管datetime数组不需要有时区,因此转换为“unzoning”datetime儒略日期或POSIX时间的值会导致意想不到的结果。为确保转换结果,请在转换前指定时区。

设置转换前的时区

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

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

d = datetime (“现在”
d =datetime01 - 9 - 2021 10:16:54

d是根据您的计算机上的本地时间构造的,并且没有与之关联的时区。在许多情况下,您可能会假设可以在无分区的情况下处理时间datetime数组作为本地时间。然而,Juliandate.posixtime函数处理时间在无分区datetime数组作为UTC时间,而不是本地时间。为了避免歧义,建议您避免使用Juliandate.posixtime在unzoneddatetime数组。例如,避免使用POSIXTIME(DATETIME('现在'))在您的代码中。

如果你的datetime数组的值不代表UTC时间,请使用时区名称值对参数如此Juliandate.posixtime解释datetime正确的价值观。

d = datetime (“现在”“时区”“美国/ New_York”
d =datetime01 - 9 - 2021 10:16:54

作为一种替代方法,您可以指定时区属性。

d.timezone ='美国/ Los_Angeles'
d =datetime01 - 9 - 2021 07:16:54

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

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

朱利安日期是从11月24日,在巨大的格雷戈里亚日历中午24714年的中午,在巨大的朱利安日历中的日历中午24714年的日子,或者在第4713号BCE。转换datetime向朱利安日期,使用Juliandate.函数。

创建一个datetimeArray并指定其时区。

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

转换D对应的儒略日期

格式longGJDZ = juliandate (DZ)
JDZ =1×32.4576 2.4577 2.4577

创建的非分区副本DZ.转换D对应的儒略日期作为D没有时区,Juliandate.将时间视为UTC时间。

D = DZ;D.TimeZone ='';JD = juliandate (D)
JD =1×32.4576 2.4577 2.4577

比较JDZJD.该差值等于UTC和美国/纽约分区在小数时代。

JDZ - JD
ans =1×30.1667 0.1667 0.1667

将划定和未经侦听的DateTime值转换为POSIX次数

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

创建一个datetimeArray并指定其时区。

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

转换D等于等价的POSIX时间。

PTZ = posixtime (DZ)
PTZ =1×31.4725 1.4752 1.4777

创建的非分区副本DZ.转换D等于等价的POSIX时间。作为D没有时区,posixtime将时间视为UTC时间。

D = DZ;D.TimeZone ='';PT = posixtime (D)
PT =1×31.4725 1.4751 1.4777

比较PTZPT.该差值等于UTC和美国/纽约时区以秒为单位。

PTZ - PT
ans =1×314400 14400 14400

另请参阅

|||

相关话题