フォーマットを使用するタイムスタンプで DateTime.ParseExact を使用しようとしていますがM/d/yyyy HH:mm:ss:fff
、コンパイラはこれが起こらないと言っています。
私のタイムスタンプの例は次のとおりです。
3/26/2013 14:37:05:553
...そして私のコードの例は、_CultureInfo が en-us.
DateTime someDateTime = DateTime.ParseExact("3/26/2013 14:37:05:553","M/d/yyyy HH:mm:ss:fff", _CultureInfo.DateTimeFormat);
何が起こっているかの下の画像を参照してください...何か不足していますか?
新しい編集
まだ運がないので、さらにいくつかのことを試しました:
:fff
に変更.fff
- 以下に提案されているように、に変更
_CultureInfo.DateTimeFormat
しSystem.Globalization.CultureInfo.InvariantCulture
、に変更するd
dd
以下は、コンソールに投げて実行して、これが私の側でどのように動作しているかを正確に確認できるものです。
class Program
{
static void Main(string[] args)
{
CsvImporter importer = new CsvImporter();
DateTime readtime = importer.Parse(@"""3/26/2013 14:37:07:238,00:00:01.6850000,23.138,23.488,23.175""");
Console.WriteLine(readtime.ToString());
}
}
class CsvImporter
{
public Char[] _SeparatorChars = new Char[] { ',' };
public DateTime Parse(string text)
{
System.Globalization.CultureInfo _CultureInfo = System.Globalization.CultureInfo.CurrentCulture;
string txt = text.Replace('"', ' ');
string[] columns = txt.Split(_SeparatorChars);
return DateTime.ParseExact(columns[0], "M/dd/yyyy HH:mm:ss:fff", _CultureInfo.DateTimeFormat);
//return DateTime.ParseExact(columns[0], "M/dd/yyyy HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
}
}