- ベストアンサー
秒を日付に変換する方法
- 秒を日付に変換する方法として、以下の関数があります。
- ユニックスタイムとは、1970年1月1日 00:00 UTCを起点にした時間の計測方法です。
- 1601年1月1日 00:00 UTCを起点に計算する関数を作成する方法は分かりません。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- bunjii
- ベストアンサー率43% (3589/8249)
>1601年1月1日 00:00 UTC を起点に計算する関数は・・・・ >130291350118733が2013/11/17 13:10 JSTになります。 他の回答者から指摘されている提示の秒数を算出した根拠を示さないと誤差が大きすぎます。 グレゴリオ暦を基準に逆算する手法で1600年1月1日起算でも提示の秒数に満たないので議論の余地がありません。 Excelでは基準日が1900年1月1日を整数の1とし、1日は24時間、1時間は60分、1分は60秒として少数のシリアル値を使うことで日付と時刻を算出します。 従って、閏年が無ければ経過年数、月数、日数、時間、分、秒を単純に計算できます。 閏年を加味することになればグレゴリオ暦に従って算出すると誰もが納得できると思います。 1601年1月1日を起算とした理由は閏年の翌年から数えるとしていると思います。 計算方法は1601年1月1日0時丁度から1901年1月1日0時丁度までの400年間の日数を秒数に変換して定数とし、提示の秒数から差し引いた経過秒数を1901年1月1日0時丁度からの経過秒数で日付、時刻を割り出したうえでUTCとJSTの時差を加えれば回答になります。 但し、提示の秒数が途轍もなく大きな値なので残念ながら計算できません。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>130291350118733が2013/11/17 13:10 JSTになります 数値(桁数)が間違えているように思います。 おおよそですが、上記の数値を10000分の1にすると近い日付にになると思います。 この場合は(1000年単位ではうるう年の関係があっても同じ秒数となる?)、おそらく以下の式で計算できるのではないかと思います。 =TEXT(A2/86400+("2601/1/2"*1-("3000/1/1"-"2000/1/1")-"1900/1/1"*1+"9:0"*1),"yyyy/mm/dd hh:mm:ss") 数式を検証するためにも、実際の秒数と日付の正しい例を示されたほうが良いと思います。
- web2525
- ベストアンサー率42% (1219/2850)
訂正 =YEAR(A1/86400+"2001/1/1")-400 &"/"& TEXT(A1/86400+("2001/1/2"*1-"1900/1/1"*1+"9:0"*1),"mm/dd hh:mm:ss") です
- web2525
- ベストアンサー率42% (1219/2850)
なぜ1601年? なのかがよく分かりませんが 最初に、 Excelは1900年以前の日付けは計算ができませんので、1601年~1900年の間は文字列としてしか表示できません 次にグレゴリオ暦の場合は、400年周期でカレンダーが一周するので 1601年を2001年として計算した上で結果から400年引くことで擬似的に表示することは可能 質問中にある関数式を一部変更 =YEAR(A1/86400+"2001/1/1")-400 &"/"& TEXT(A1/86400+("1970/1/2"*1-"1900/1/1"*1+"9:0"*1),"mm/dd hh:mm:ss") 但しこれは文字列なのでその後の計算には利用できない ちなみに130291350118733秒は約413万年でエクセルでは計算しきれません
- maiko0318
- ベストアンサー率21% (1483/6969)
+"9:0" を消してみれば?おそらく
お礼
ありがとうございます!できました!あの数値はマイクロ秒だったようです。