Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 time
外观
time { jd <juliandatenumber> }
-- 或者 --
time { utc <string> }
使用儒略日(十进制数)或 UTC 时间字符串设置日期和时间,格式为 YYYY-MM-DDTHH:MM:SS.SSSSS。
参数
- jd <juliandatenumber>
- 有效的儒略日。无默认值。
-- 或者 --
参数
- utc <string>
- 有效的 UTC 格式日期:YYYY-MM-DDTHH:MM:SS.SSSSS。无默认值。
注意:要从普通日历日期获得儒略日,请尝试位于以下位置的美国海军日历日期/时间到儒略日期/时间转换器:儒略日转换器。
注意:在 Celestia 中,也可以从普通日历日期获得儒略日。在菜单栏中选择“时间”选项。接下来选择“设置时间……”选项,然后将显示“设置模拟时间”窗口。此窗口包含两种时间格式,可用于将儒略日期/时间转换为 UTC 日期/时间,反之亦然。
CELX 等效项
基于 celestia:settime() 方法和一些日期/时间转换方法。
从版本 1.5.0 开始,尽管 Celestia 仍然在屏幕上显示 UTC,但它在内部使用 TDB 时间尺度来执行其他所有操作,因此对于 CELX 脚本 !!!
- 对于这些较新的 Celestia 版本,在 celestia:settime() 方法中使用 UTC 儒略日(作为 celestia:tojulianday() 方法的结果),会导致设置错误的模拟时间。要使用儒略日为这些较新的 Celestia 版本设置模拟时间,应使用 1.5.0 celestia:utctotdb() 方法。
- 对于这些较新的 Celestia 版本,使用 celestia:gettime() 方法获取儒略日,并使用此 celestia:fromjulianday() 方法将其转换为日历日期/时间,将导致获得错误的日历日期/时间。要使用 celestia:gettime() 方法中的儒略日获取正确的日历日期/时间,对于这些较新的 Celestia 版本,应使用 1.5.0 celestia:tdbtoutc() 方法。
- 有关 TDB、UTC 以及 Celestia 如何使用时间的更多信息,请参阅 时间尺度。
要进行日历日期和儒略日期、UTC 和 TDB 之间的转换,可以使用以下 Celestia 方法
- Celestia 版本 1.4.1 及更早版本.
将UTC 日历日期转换为UTC 儒略日并设置模拟日期/时间。如果未指定- <monthnumber> 和 <daynumber> 默认值为 1
- <hournumber>、<minutenumber> 和 <secondnumber> 默认值为零。
juliandate = celestia:tojulianday( <yearnumber>, <monthnumber>, <daynumber>, <hournumber>, <minutenumber>, <secondnumber> ) celestia:settime(juliandate)
- Celestia 版本 1.4.1 及更早版本.
获取模拟日期/时间并将UTC 儒略日转换为UTC 日历日期。
返回的表“utctable”包含键- utctable.year = <yearnumber>
- utctable.month = <monthnumber>
- utctable.day = <daynumber>
- utctable.hour = <hournumber>
- utctable.minute = <minutenumber>
- utctable.seconds = <secondnumber>
juliandate = celestia:gettime() utctable = celestia:fromjulianday(juliandate)
- Celestia 版本 1.5.0 及更高版本.
将UTC 日历日期转换为TDB 儒略日并设置模拟日期/时间。如果未指定- <monthnumber> 和 <daynumber> 默认值为 1
- <hournumber>、<minutenumber> 和 <secondnumber> 默认值为零。
tdbdate = celestia:utctotdb( <yearnumber>, <monthnumber>, <daynumber>, <hournumber>, <minutenumber>, <secondnumber> ) celestia:settime(tdbdate)
- Celestia 版本 1.5.0 及更高版本.
获取模拟日期/时间并将TDB 儒略日转换为UTC 日历日期。
返回的表“utctable”包含键- utctable.year = <yearnumber>
- utctable.month = <monthnumber>
- utctable.day = <daynumber>
- utctable.hour = <hournumber>
- utctable.minute = <minutenumber>
- utctable.seconds = <secondnumber>
tdbdate = celestia:gettime() utctable = celestia:tdbtoutc(tdbdate)
示例
如何将日期和时间设置为 2003 年 8 月 11 日 9:29:24 UTC 的示例。
CEL
time { jd 2452862.89542 } ... time { utc "2003-08-11T09:29:24.0000" }
CELX Celestia 版本 1.4.1 及更早版本
celestia:settime(2452862.89542) ... juliandate = celestia:tojulianday(2003, 08, 11, 09, 29, 24.0000) celestia:settime(juliandate)
CELX Celestia 版本 1.5.0 及更高版本
utctable = celestia:fromjulianday(2452862.89542) tdbdate = celestia:utctotdb(utctable.year, utctable.month, utctable.day, utctable.hour, utctable.minute,utctable.seconds) celestia:settime(tdbdate) ... tdbdate = celestia:utctotdb(2003, 08, 11, 09, 29, 24.0000 ) celestia:settime(tdbdate)