0

ログ ファイルのタイム スタンプを表示するために Excel を使用しています。ファイルの生出力のタイム スタンプは、ミリ秒単位の精度で表示されます。これを維持する必要があります。タイム スタンプも UTC であり、ローカル タイムゾーンに変換する必要があります。dateAdd 関数を使用して TZ オフセットに変換すると、ミリ秒の値が「000」に設定されます。

GetLocalTimeFromGMT = DateAdd("h", offset, dateToConvert)

その精度を失うことなく dateAdd を使用する方法はありますか、またはタスクにより適した別の関数がありますか?

4

2 に答える 2

0

私が最初に考えたのは Format(YourDate, "mm/dd/yyyy hh:mm:ss.000") を使用することでしたが、うまくいきませんでした。日付に5時間を追加しようとするまで、DateAddが間違いなく犯人だと思いました。シートで実行すると、ミリ秒が保持されました。VBA で実行すると、ミリ秒が保持されませんでした。これはおそらく、Excel が時間と日付を処理する方法に関係しています。DateAdd、そしてある程度の VBA は、それを行うように設定されていません。

最も速くて簡単な方法は少し面倒ですが、うまくいきます。すべての時間をシートに入れ、次を使用して 5 時間を追加するだけです。

    ="CellLocationOfGMTDate" + (offset/24)

これにより、必要な時間が得られ、ミリ秒が保持されます。その後、シートから時刻と日付を取得できます。

本当に VBA でこれを行う必要がある場合は、日付からミリ秒を取得し、オフセットを追加した後にそれらを追加する方法を理解する必要があります。調べてみて、何か分かったらまた報告したいと思います。

于 2014-04-07T22:40:58.297 に答える