10

C# と Microsoft.Office.Interop を使用して Excel ワークシート データを読み込んでいます。シートにはいくつかの日付値が含まれています。その値を読み取ろうとすると、数値が表示されます (おそらく TimeSpan)。この数値を DateTime に変換する際に問題が発生しています。

以下はコードです:

TimeSpan ts = TimeSpan.Parse(((Range)ws.Cells[4, 1]).Value2.ToString());

はどこwsですかExcel.WorkSheet

TimeSpanこの数値 ( ) をに変換する方法を説明できる人はいますDateTimeか?

貴重な時間を共有していただきありがとうございます。

4

4 に答える 4

9

あなたは次のことができます

double d = double.Parse(((Range)ws.Cells[4, 1]).Value2.ToString());

DateTime conv = DateTime.FromOADate(d);
于 2011-01-25T07:52:52.667 に答える
9

以下を使用します。

DateTime dt = new DateTime().Add( TimeSpan.FromMilliseconds( 1304686771794 ) )
于 2011-05-06T13:22:49.953 に答える
6

それはすべて、数値がどのように見えるかに依存します; pこれは通常、ある間隔で、あるエポック(たとえば、1970年1月1日からの秒数)へのオフセットです。たとえば、次のようにしてみてください。

var when = new DateTime(1970,1,1).AddSeconds(number);

次に、日付が一致するまでAddMilliseconds(number)、などを試してください。AddTicks(number)

于 2011-01-25T07:51:24.400 に答える
2

これは単なるアイシングです。Excel は日付をOLE オートメーションの日付として表します。これらの値は浮動小数点数であり、その整数部分は 1899 年 12 月 30 日の午前 0 時以降の日数です。負の場合はそれ以前です。グレコの答えは、変換するための最良の方法を提供します:)

于 2011-01-25T08:00:26.387 に答える