2

私の wpf アプリでは、選択した日付形式を比較するための次のコードを記述しました。

C# コード:

class Harvest_Base
{

    public static DateTime storeTime(String date)
    {

        DateTime returnValue = new DateTime();

        if (date == "")
            return returnValue;

            //Time or Date Component Does not Exist
            string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
               "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", "yyyy-mm-dd",
               "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
               "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm", 
               "h:mm tt","hh:mm tt","HH:mm:ss","H:mm","HH:mm","h:mmtt"};
            DateTime result;

            if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
                returnValue = result;
            else
                returnValue = DateTime.Today;


        return returnValue;

    }

ここでの問題は、ブレークポイントを設定して「date」オブジェクトをチェックすると、mw 選択された日付が適切に表示されることです。日付の形式は「yyyy-mm-dd」です。「2013-08-08」を選択すると、returnValue は日付を「08-01-2013 00:08:00」と表示します。全然違うフォーマットです。形式を無視すると、月が間違っています。これをどのように解決すればよいですか?

4

1 に答える 1

2

「2013-08-08」を選択すると、日付が「08-01-2013 00:08:00」と表示される returnValue

mmは分、MMは月であるため、分に変換しています。

これはうまくいきます

string[] formats= {"yyyy-MM-dd"};
if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
    returnValue = result;
else
    returnValue = DateTime.Today;
于 2013-08-16T09:00:15.473 に答える