2

フォーマットを使用するタイムスタンプで 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.DateTimeFormatSystem.Globalization.CultureInfo.InvariantCulture、に変更するddd

以下は、コンソールに投げて実行して、これが私の側でどのように動作しているかを正確に確認できるものです。

    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);
        }
    }
4

3 に答える 3

4

これを試してください(dとにdd変更CultureInfo.InvariantCulture

DateTime someDateTime = DateTime.ParseExact("3/26/2013 14:37:05:553", "M/dd/yyyy HH:mm:ss:fff", CultureInfo.InvariantCulture);
于 2013-04-17T20:22:12.810 に答える
0

を呼び出すときはいつでもParseExact、明確なフォーマット文字列を使用していることを確認してください。.NET では、/書式文字列の文字は、実際のスラッシュではなく、システムの日付区切り文字です。:時代のキャラクターも同じ。

構造で文字列を解析するには、次のようにスラッシュとコロンをバックスラッシュでエスケープします。

DateTime.ParseExact(s, @"M\/d\/yyyy HH\:mm\:ss\:fff", null)
// or
DateTime.ParseExact(s, "M\\/d\\/yyyy HH\\:mm\\:ss\\:fff", null)

これにより、システム設定や現在のカルチャに関係なく、スラッシュとコロンが特に必要であることをパーサーに伝えます。

于 2013-04-18T15:31:50.907 に答える