0

Excel ファイルを asp.net にインポートして、それをグリッド ビューに入力しています...

Excelシートに時間の列があります。次の形式「hh:mm」を挿入していますが、asp.netで完全な形式を取得し続けています

例: Excel で 11:11 i get in asp.net 12/30/1899 11:11:00 AM ただし、Excel のセルの形式は h:mm

データテーブルの値を変更しようとしていますが、うまくいきません...どうすれば解決できますか?

 timee = row("TIME_TO_SEND")
 finalTime = timee.Substring(0, 5)
 row("TIME_TO_SEND")="hh:mm"

日付の変換が機能していることに注意してください...しかし、私の問題は、データテーブルで日付の形式が完全であることです...そのため、グリッドビューにデータテーブルを入力すると、時間列に表示されます:1899/12/30 11:11:00 AM

4

3 に答える 3

0

使ってみて

DateTime.Parse(row("TIME_TO_SEND"), "hh:mm")

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

于 2013-10-09T07:55:22.953 に答える
0

Excelでフォーマットを設定すると、Excelはすべてのデータを保持しますが、フォーマットを使用して表示します。あなたの場合、列には日時全体が含まれていますが、設定した部分のみが表示されます。必要な結果を得るには、次のようにします。

DateTime timee = DateTime.Parse(row("TIME_TO_SEND"));
string finalTime = timee.ToString("hh:mm");

更新:- 実行時にグリッドビューで日時をフォーマットしたいので、行がバインドされるたびに発生するGridViewのRowDataBoundイベントを使用します。

あなたの時間列が3番目の列であると仮定すると、インデックスが0の場合、ここで2番目になります。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
          DateTime dt = DateTime.Parse(e.Row.Cells[2].Text);
          e.Row.Cells[2].Text = dt.ToString("hh:mm");
     }
}
于 2013-10-09T07:56:23.167 に答える
0

あなたが得ているのはDateTime.

を使用しDateTime.ToStringて正しくフォーマットしてください。

finalTime = row("TIME_TO_SEND").ToString("hh:mm")
于 2013-10-09T07:58:42.703 に答える