0

さまざまな時間形式を取り、それを短い時間形式「午前5時」に解析しようとしています

これらのさまざまな形式を把握できるようにしたいと思います。"5am" "5:00am", "05am", "05:00am", "5 am" "5:00 am", "05 am", "05:00 am", "5", "13"

これは私が現在持っているものです

string[] formats = { "hh", "%h", @"h\:mm", @"hh\:mm", @"d\.hh\:mm\:ss", "fffff", "hhmm" };
        TimeSpan newTime = new TimeSpan();

        if (TimeSpan.TryParseExact(txtEndTime.Text, formats, null, out newTime))
        {
            txtEndTime.Text = Parser.GetDateTime(newTime).ToShortTimeString();
        }
4

2 に答える 2

0

これは実際そうだと思う

string[] formats = { "hh", "hhtt", "hh tt", "%h", "%htt", "%h tt", @"h\:mm", @"h\:mmtt", @"h\:mm tt", @"hh\:mm", 
                            @"hh\:mmtt", @"hh\:mm tt", @"d\.hh\:mm\:ss", @"d\.hh\:mm\:sstt", @"d\.hh\:mm\:ss tt", "fffff", 
                            "hhmm", "hhmmtt", "hhmm tt" };

        DateTime newDate = new DateTime();

        if (DateTime.TryParseExact(txtStartTime.Text, formats, null, DateTimeStyles.None, out newDate))
        {
            txtStartTime.Text = newDate.ToShortTimeString();
        }
于 2013-06-20T21:43:56.630 に答える
0

最初にこれを見てください(Datetime Formats):

http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

この場合、TimeSpan を使用しないでください。代わりに、DateTime を作成し、そのメソッド 'ToString' を使用します。

            string[] formats = { @"hh:mm tt", "%h", @"h\:mm", @"hh\:mm", @"d\.hh\:mm\:ss", "fffff", "hhmm" };
            var dat = new DateTime(2013, 6, 20, 5, 0, 0);
            var provider = CultureInfo.InvariantCulture;
            foreach (var format in formats)
            {
                textBox1.Text += dat.ToString(format, provider) + Environment.NewLine;
            }

編集:また、プロバイダーを「CultureInfo.InvariantCulture」に設定します。

于 2013-06-20T21:45:38.913 に答える