以前エッダちゃんの撮影に成功したとき、もしかしたら出現条件にエオルゼアの暦が関係あるのではと思って、撮影時刻からエオルゼア時間を出すために地球時間とエオルゼア時間の対応を調べたことがあります。
現在時刻とエオルゼア時間の対応を見るだけであれば、FF14俺tools:エオルゼアカレンダーでわかります。自分で計算するときに役立つ情報も書いてあるので非常に助かりました。
俺toolsに書いてあることと一部被りますが、エオルゼア時間と地球時間の対応はこうなっています。
エオルゼア時間 | 地球時間 |
---|---|
1時間(60分) | 175秒 |
1日(24時間) | 70分 |
1ヶ月(32日) | 37時間20分 |
1年(12ヶ月) | 18日16時間 |
俺toolsのページには日本時間1970/1/1 00:00:00がエオルゼア時間1/1/1 00:00:00に対応すると書いてありますが、日本時間は世界標準時の間違いだと思います。ちなみに世界標準時1970/1/1/ 00:00:00から経過した秒数をUNIX時間と呼び(Wikipediaの記事)、Cを始めいろいろなプログラム言語やOSで使用されているようです。
具体的に計算するのに、自分は下記のPythonスクリプトを使用しています。俺toolsのページと同じくエオルゼア時間での年が出てきますが、計算上の都合で出てくるものでそれ以上の意味はないはずです。
#!/usr/bin/python3 import sys import time def lt2et(lt): # UNIX時間を求める ut = time.mktime(lt) # エオルゼア時間1/1/1 00:00:00から経過した秒数を求める et_seconds = ut * 60.0 / 175.0 # エオルゼア時間1/1/1 00:00:00から経過した時間を求める et_hours = ut / 175.0 # エオルゼア時間1/1/1 00:00:00から経過した日数を求める et_days = et_hours / 24.0 # エオルゼア時間1/1/1 00:00:00から経過した月数を求める et_months = et_days / 32.0 # エオルゼア時間の年を計算する et_year = et_months / 12.0 + 1.0 # エオルゼア時間の月を計算する et_month = et_months % 12.0 + 1.0 # エオルゼア時間の日を計算する et_date = et_days % 32.0 + 1.0 # エオルゼア時間の時刻を計算する et_hour = et_hours % 24.0 et_minute = et_seconds % 60.0 return et_year, et_month, et_date, et_hour, et_minute if __name__ == "__main__": if len(sys.argv) < 3: lt = time.localtime() else: lt = time.strptime("%s %s" % (sys.argv[1], sys.argv[2]), "%Y-%m-%d %H:%M:%S") et_year, et_month, et_date, et_hour, et_minute = lt2et(lt) print("%4d-%02d-%02d %02d:%02d" % (int(et_year), int(et_month), int(et_date), int(et_hour), int(et_minute)))