FAQ/ - プロジェクトファイルの時刻表現
DioVISTA のプロジェクトファイル (*.fsxproj) における日時表現について教えてください。
たとえば、プロジェクトのプロパティ [シミュレーション日時] が日本時間 2023/12/15 15:00 の場合、プロジェクトファイル には simTime="212569423200000"
と記載されます。
この値はどのように求めているのでしょうか。
回答
DioVISTA のプロジェクトファイル fsxproj における日時表現は、ユリウス通日(Julian Day)です。単位は1/1000秒です。
日時から fsxproj における日時表現に変換するには、次のPowerShellスクリプトを試してください。
| $dateTime = Get-Date "2023/12/15 15:00"
# diovista project file floodSim.simTime is julian day+0.5 in milli sec.
# $epocSimTime is julian day +0.5 of unix epoc in milli sec
$epocSimTime = 2440588 * 86400000
$epoc = (Get-Date "1970-01-01 00:00:00Z").ToUniversalTime()
$timeValue = $dateTime.ToUniversalTime().Subtract($epoc).TotalSeconds * 1000 + $epocSimTime
Write-Host $timeValue
|
このスクリプトを実行すると、次の値が表示されます。
fsxproj における日時表現から日時に変換するには、次のPowerShellスクリプトを試してください。
| $timeValue = 464269071599999
# diovista project file floodSim.simTime is julian day+0.5 in milli sec.
# $epocSimTime is julian day +0.5 of unix epoc in milli sec
$epocSimTime = 2440588 * 86400000
$epoc = (Get-Date "1970-01-01 00:00:00Z").ToUniversalTime()
$dateTime = $epoc.AddSeconds(($timeValue - $epocSimTime) / 1000).ToLocalTime()
Write-Host $dateTime
|
このスクリプトを実行すると、次の値が表示されます。
関連項目
最終更新日:
2023-12-15