跳转到内容

Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 time

来自 Wikibooks,开放世界开放书籍

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 脚本 !!!

  1. 对于这些较新的 Celestia 版本,在 celestia:settime() 方法中使用 UTC 儒略日(作为 celestia:tojulianday() 方法的结果),会导致设置错误的模拟时间。要使用儒略日为这些较新的 Celestia 版本设置模拟时间,应使用 1.5.0 celestia:utctotdb() 方法。
  2. 对于这些较新的 Celestia 版本,使用 celestia:gettime() 方法获取儒略日,并使用此 celestia:fromjulianday() 方法将其转换为日历日期/时间,将导致获得错误的日历日期/时间。要使用 celestia:gettime() 方法中的儒略日获取正确的日历日期/时间,对于这些较新的 Celestia 版本,应使用 1.5.0 celestia:tdbtoutc() 方法。
  3. 有关 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)


返回 CEL 命令索引

华夏公益教科书