0

Excelファイルから読み取り、コンテンツをデータベースに保存しています

列の 1 つは、この形式のビデオの長さを含みます

HH:mm:ss

私はこれまでこのコードを書いています

string time = oledbReader[6].ToString();
DateTime streamingTime = DateTime.ParseExact(time, 
                             "HH:mm:ss",
                             System.Globalization.CultureInfo.CurrentCulture);

エラーが発生しています:

文字列は有効な DateTime として認識されませんでした。

デバッグ モードを試してみたところ、現在の execl 列の値が "00:09:21" の場合、変数の時刻に"30/12/1899 00:09:21"という値が表示されます。

「1899/12/30」はどこから来たのですか? 文字列が有効な DateTime として認識されなかったのはなぜですか?

HH:mm:ss の形式だけを SQL サーバーに保存できますか?

4

4 に答える 4

2

Since you didn't gave us any information about your CultureInfo, here with InvariantCulture;

string time = "30/12/1899 00:09:21";
DateTime streamingTime = DateTime.ParseExact(time, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine(streamingTime);

Output will be;

12/30/1899 12:09:21 AM

Here a DEMO.

For more informations, check out Custom Date and Time Format Strings

于 2013-09-29T18:20:20.307 に答える
1

構造体を使用しTimeSpanて時間値を保持します。ADateTimeには、日付と時刻の両方が含まれます。

于 2013-09-29T18:43:51.243 に答える
0

問題は、Excel に時間フィールドがなく、時間を自動的に日時フィールドに変換することです。コースの日付が「空」の場合は、Excel の最小日付を意味します - 1899 年 12 月 30 日

さらに、オブジェクトは既に DateTime であるため、ToString メソッドを呼び出す必要はありません。

于 2013-09-29T18:28:39.640 に答える