-1

C# で文字列を日時形式に変換しようとしています。

DateTime SnapDate = Convert.ToDateTime(valid(odr, 4)).Date;

protected string valid(OleDbDataReader myreader, int stval)//if any columns are found null then they are replaced by zero
{
   object val = myreader[stval];
   if (val != DBNull.Value)
      return val.ToString();
   else
   return Convert.ToString("");
}

そして、次のエラーが表示されます。「文字列は有効な DateTime として認識されませんでした。インデックス 0 から始まる不明な単語があります。」

私は次のようないくつかのことを試しました:parseそしてparseExact、それでも取得できませんでした。

このデータをExcelシートから読み取っています。

4

2 に答える 2

3

入力文字列が en-US 形式のようです。CultureInfoオブジェクトをParseメソッドに指定してみてください:

DateTime SnapDate = DateTime.Parse(valid(odr, 4), new CultureInfo("en-US")).Date;

入力Parse文字M/d/yyyy3/21/2013.

于 2013-04-01T22:08:35.417 に答える
1

システムカルチャを使用したり選択したりするのではなく、正確な日付形式を選択して、次のように使用します。

DateTime dt = DateTime.ParseExact("3/21/2013", "M\\/d\\/yyyy", null);

パラメータの順序や日付の区切りにあいまいさはありません。

参考: スラッシュの前にバックスラッシュを使用する理由は、スラッシュをエスケープするためです

于 2013-04-01T22:10:43.490 に答える