跳轉到內容

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 命令索引

華夏公益教科書