web-dev-qa-db-ja.com

Unix EpochタイムスタンプをExcelで人間が読める日付/時刻に変換するにはどうすればよいですか?

JavaアプリケーションからのUnixエポックタイムスタンプを含むExcel文書があります。Excel内で人間が読める日付として変換し、それを表示したいのですが。

たとえば、次のlong:1362161251894は、1 Mar 2013 11:07:31,894のような読みやすいものに評価されるはずです。

私はこのための式を作成できると仮定していますが、どうすればよいかわかりません。ありがとう!

39
Bryce

はい、これを行う式を作成できます。 JavaおよびUnix/Linuxは1970/1/1からのミリ秒数をカウントしますが、Microsoft ExcelはWindowsの1/1/1900およびMac OS Xの1/1/1904から開始します。変換するには、次を実行するだけです。

WindowsのGMT時間の場合

=((x/1000)/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))

Mac OS XのGMT時間の場合

=((x/1000)/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1904"))

Windowsの現地時間(tをGMTからの現在のオフセットに置き換えます)

=(((x/1000)-(t*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))

Mac OS Xの現地時間(tをGMTからの現在のオフセットに置き換えます)

=(((x/1000)-(t*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1904"))

あなたの特定のケースでは、あなたは山岳地帯にいるように見えます(GMTオフセット7)。 1362161251894の値をセルA1の新しいExcelスプレッドシートに貼り付け、次の数式を貼り付けると、41333.46356の結果が得られます。セルでctrl + 1を押します):2/28/13 11:07 AM

=(((A1/1000)-(7*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))
43
11101101b
20
Freiheit

エポック時間はミリ秒単位で提供されました(1523060201838)。ユーザーはNYタイムゾーンの変換を探しています(GMT -04:またはDST -144)。

ExcelのセルA1のエポック時間は13桁です。

((A1/1000)-14400)/86400 + 25569

4/6/18 8:16 PMに変換します(セルを日付としてフォーマットした後)。

4
brennan4u

覚えて読むのが最も簡単な式は次のとおりです。

Unix/EpochタイムスタンプからExcelの日付に変換します(タイムスタンプがA2であると仮定):

=(A2/86400)+DATE(1970,1,1)

これにより、GMT Excelの時刻値が生成されます。次に、セルの形式を日付形式のいずれかに設定するか、独自のカスタム形式を作成する必要があります。私はどちらかを使用する傾向があります:

dd-mmm-yy                --> gives 05-Oct-18
dd-mmm-yyyy hh:mm:ss     --> gives 05-Oct-2018 09:45:12

日付からエポックタイムスタンプへの変換(日付がA2であると仮定):

=(A2-DATE(1970,1,1))*86400

このページは非常に役立つことがわかりました: Extendoffice Excel-timestamp-to-date

注:GMTから現地時間に調整する必要がある場合(例としてニューヨーク)、最後に差を追加します。以下は、-5時間のオフセットを示しています。

=(A2/86400)+DATE(1970,1,1)+(-5/24)
0
Traveler_3994

Excelは、日を整数値で表し、時間を小数値で表します。したがって、エポック時間がUNIXから1970年から1970年までのミリ秒単位で提供された場合、1年のミリ秒数で除算し、 Excelの1-1-1970の表現 を追加します。人間が読めるUTC時間を提供します。値がセルA1にある場合、Excelは以下を必要とします。

=A1/86400/1000+DATEVALUE("1-1-1970")

エポック時間がミリ秒ではなく秒であった場合、/ 1000をドロップできることに注意してください。 't'がローカルUTCオフセットであるローカル時間に変換するには(負のUTCオフセットがある場合は負の値を使用することを忘れないでください)、UTCオフセットを加算/減算できます。

=A1/86400/1000+DATEVALUE("1-1-1970")+t/24

UTCオフセットは、お住まいの地域で夏時間を使用しているかどうかによって異なる場合があり、1つのスプレッドシートで年間を通して現地時間を表示するための不完全なソリューションになります。

0
mysteryegg