0

日時データ型で現在の日付(日付のみ)を取得するために見つけていました。

そのために私はいくつかのグーグルを作成し、次のコードを作成しました>>

DateTime dtCurrDate;
dtCurrDate=DateTime.ParseExact(DateTime.Now.Date.ToShortDateString(),"MM/dd/yyyy",null);

このコードは私に例外を与えています:

String was not recognized as a valid DateTime.

その中の間違いは何ですか?

私を助けてください。

4

5 に答える 5

2

DateTime.Now.Dateプロパティをご存知だと思います。このプロパティは、時刻をに設定して現在の日付を指定し00:00:00ます。

では、なぜ解析に問題があるのでしょうか。

おそらくあなたの現在の文化のために、DateTime.ToShortDateString()あなたに(文化のために)与えるでしょうen-US

Displaying short date for en-US culture: 
//          6/1/2009 (Short Date String) 

後で解析します:"MM/dd/yyyy"1桁の数字Md

したがって、コードは次のようになります。

dtCurrDate=DateTime.ParseExact(DateTime.Now.Date.ToShortDateString(),"M/d/yyyy",null);

結果を文字列に格納し、ToShortDateString()取得する形式の種類を確認して、それに応じて解析できるとよいでしょう。

于 2013-03-26T07:51:14.887 に答える
2

フォーマット文字列が間違っています。標準の日付には「d」を使用する必要があります

「d」
短い日付パターン。

2009年6月15日午後1時45分30秒->2009年6月15日(米国)

2009年6月15日午後1時45分30秒->2009年6月15日(fr-FR)

2009年6月15日午後1時45分30秒->2009年6月15日(ja-JP)

参照については、このmsdnページを参照してください

于 2013-03-26T07:51:31.447 に答える
1

そのため、またはDateTimeのような形式はないことに注意してください。それはあなたがそれをどのように表示したいかのあなたの好みの問題であり、あなたはそれを介して様々なフォーマットを介してそれを制御することができますMM/dd/yyyydd/MM/yyyyToString()

データベース値をとして解析してから、使用している部分DateTimeのみを比較することができます(これには深夜12時の時間コンポーネントがあります)Date<instance>.Date

于 2013-03-26T07:51:18.700 に答える
1

コメントで、データベース内の日付を現在の日付と比較したいとおっしゃいました。これを行うには、2つの方法しかありません。

  1. C#では
  2. データベース内

C#
データベースから値を選択する必要があります。DateTime正しく行うと、次のようになります。

using (SqlCommand cmd = new SqlCommand("SELECT DateColumn FROM Table", conn))
using (SqlDataReader reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        DateTime datecolumn = reader["DateColumn"] as DateTime? ?? DateTime.MinValue;
        if (dateColumn.Date == DateTime.Now.Date)
        {
            ...
        }
    }
}

SQL
日付の値をSQLに渡す必要があります。これは、パラメーター化されたクエリを使用して実行する必要があります。

using (SqlCommand cmd = new SqlCommand("....", conn))
{
    cmd.Parameters.AddWithValue("@dateParameter", DateTime.Now.Date);
    ...
}    
于 2013-03-26T07:55:34.377 に答える
0

試す

dtCurrDate=DateTime.Now.ToShortDateString();
于 2013-03-26T07:52:07.987 に答える