コンテンツにスキップ

FAQ/ - プロジェクトファイルの時刻表現

DioVISTA のプロジェクトファイル (*.fsxproj) における日時表現について教えてください。

たとえば、プロジェクトのプロパティ [シミュレーション日時] が日本時間 2023/12/15 15:00 の場合、プロジェクトファイル には simTime="212569423200000" と記載されます。 この値はどのように求めているのでしょうか。

回答

DioVISTA のプロジェクトファイル fsxproj における日時表現は、ユリウス通日(Julian Day)です。単位は1/1000秒です。

日時から fsxproj における日時表現に変換するには、次のPowerShellスクリプトを試してください。

1
2
3
4
5
6
7
$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

このスクリプトを実行すると、次の値が表示されます。

1
212569423200000

fsxproj における日時表現から日時に変換するには、次のPowerShellスクリプトを試してください。

1
2
3
4
5
6
7
$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

このスクリプトを実行すると、次の値が表示されます。

1
9999/12/31 23:59:59

関連項目


最終更新日: 2023-12-15