ここから本文です

Unix Timeを日時(グレゴリウス暦)に変換する方法について質問です。

qq5********さん

2018/12/1217:41:25

Unix Timeを日時(グレゴリウス暦)に変換する方法について質問です。

現在XSLT 1.0でUnix Timeを日時(年、月、日、時、分、秒)に変換したいのですが、どのように計算すればよいでしょうか。

現状としましては以下のようなコードで止まっています。

~~~
<xsl:variable name="timestamp" select="."/>

<xsl:variable name="yearMod" select="$timestamp mod 31556952"/>
<xsl:variable name="monthMod" select="$yearMod mod 2629746"/>
<xsl:variable name="dayMod" select="$monthMod mod 86400"/>
<xsl:variable name="hourMod" select="$dayMod mod 3600"/>

<xsl:variable name="year" select="floor($timestamp div 31556952) + 1970"/>
<xsl:variable name="month" select="floor($yearMod div 2629746) + 1"/>
<xsl:variable name="day" select="floor($monthMod div 86400) + 1"/>
<xsl:variable name="hour" select="floor($dayMod div 3600)"/>
<xsl:variable name="minute" select="floor($hourMod div 60)"/>
<xsl:variable name="second" select="$monthMod mod 60"/>
~~~

実際には閏年、閏秒があるため以上のようなコードでは正確な日時に変換されません。とは言ったものの、私の知能が不足しているため、どこをどう書き直せばよいか分からない始末です。

Web検索を行い解決方法を探しては見たものの、JavaやPHPなどで既存のメソッドや関数を利用し簡単に日時変換するといったものしか見つからず、実際の計算方法ついては今もって分かりません。

実際にUnix Timeから日時の計算を行うにはどのような計算方法が必要でございますでしょうか。

以前にもYahoo!知恵袋にて同様の質問<https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q101802659...>を投稿した際には、「EXSLTを使うのが素直だと思います。」とのご回答を頂いたのですが、出来ればEXSLTは無しで、XSLT 1.0の機能のみで実装したいと考えております。

C言語、JavaScriptなどXSLT 1.0以外の言語でも全く構いませんので、Unix Timeを日時(グレゴリウス暦)に変換する計算式をご紹介頂ければ誠に幸いでございます。

拙い質問本文で何分恐縮ではございますが、どうぞ宜しくお願いいたします。

閲覧数:
24
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

cd6********さん

2018/12/1421:33:43

JavaScript だと new Date(unixtime) で変換されるので
何も考える必要ありません。

  • 質問者

    qq5********さん

    2018/12/1423:33:31

    cd6********様、早々にご回答頂きまして誠に有り難うございます。

    > JavaScript だと new Date(unixtime) で変換されるので何も考える必要ありません。

    質問投稿前に当方がWeb検索した限りに於きましても、各種言語(JavaScriptも含む)で用意されているメソッドや関数などを用いて、Unix Timeを日時に変換する方法については多くのページを見つけることが出来ました。

    (続く)

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/12/18 12:38:58

ご回答頂きまして誠にありがとうございます。

実際にXSLT 1.0による変換コードをお示し頂けるとは思いも寄りませんでした。感謝感激する次第です。

まだ詳細なテストは完了していませんが、当質問の回答期限が迫っているためベストアンサーに選ばさせて頂きます。

またの機会が御座いましたら、その時もどうぞ宜しくお願い申し上げます。

「グレゴリウス暦」の検索結果

検索結果をもっと見る

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

別のキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる