web-dev-qa-db-ja.com

Windows Forms DateTimePickerコントロールから日付値のみを取得する方法は?

C#コードを使用してアプリケーションを構築しています。
DateTimePickerコントロールから日付値のみを取得するにはどうすればよいですか?

69
srinivas

私はあなたがwinformsアプリケーションの日時ピッカーを意味すると仮定しています。

コードでは、次のことができます。

string theDate = dateTimePicker1.Value.ToShortDateString();

または、日付の形式を指定する場合:

string theDate = dateTimePicker1.Value.ToString("yyyy-MM-dd");
119
tardomatic
DateTime dt = this.dateTimePicker1.Value.Date;
44
Keith

日付データをデータベースに挿入するときにこの問題がありましたが、単に構造体メンバーを個別に使用できます:私の場合は、SQL文に正しい値が必要であり、スラッシュまたはダッシュを追加してフォーマットを完了する必要があるため便利です、変換は不要です。

DateTimePicker dtp = new DateTimePicker();
String sql = "insert into table values(" + dtp.Value.Date.Year + "/" + 
dtp.Value.Date.Month + "/" + dtp.Value.Date.Day + ");";

そうすれば、時間のない日付メンバーだけを取得できます...

8
string shortDate = dateTimePicker1.Value.ToShortDateString();
3
waqasahmed

時間コンポーネントなしで日付を取得する方法を意味しますか? DateTimePicker.Value.Date を使用しますが、必要に応じて出力をフォーマットする必要があります。

1
Vivek

@Shoban質問にc#のタグが付けられているように見えるので、適切な切り取りがあります http://msdn.Microsoft.com/en-us/library/system.windows.forms.datetimepicker.value.aspx

public MyClass()
{
    // Create a new DateTimePicker
    DateTimePicker dateTimePicker1 = new DateTimePicker();
    Controls.Add(dateTimePicker1);
    MessageBox.Show(dateTimePicker1.Value.ToString());

    dateTimePicker1.Value = DateTime.Now.AddDays(1);
    MessageBox.Show(dateTimePicker1.Value.ToString());
 } 
0
jon37

これを試して

var store = dtpDateTimePicker.Value.Date;

ストアは、任意のエンティティオブジェクトなどです。

0
Mohit Arora

この質問にすでに適切な答えが与えられていることに続いて、WinFormsでは Custom FormatDateTimePickerFormat に設定することもできます= Vivekが言ったように、これはDateTimePicker内の指定されたフォーマット文字列で日付/時刻を表示することを可能にし、それからテキストを取得するのと同じように簡単になりますTextBox

// Set the Format type and the CustomFormat string.
dateTimePicker1.Format = DateTimePickerFormat.Custom;    
dateTimePicker1.CustomFormat = "yyyy/MM/dd";

dateTimePicker1

DateTimePickerからテキストを取得することで、簡単に日付を取得できるようになりました。

MessageBox.Show("Selected Date: " + dateTimePicker1.Text, "DateTimePicker", MessageBoxButtons.OK, MessageBoxIcon.Information);

enter image description here

注:SQLのdate列型に日付のみのデータを挿入する場合は、こちらを参照してください documentationdateでサポートされる文字列リテラル形式。サポートされていないため、フォーマット文字列ydmに日付を挿入することはできません。

dateTimePicker1.CustomFormat = "yyyy/dd/MM";  
var qr = "INSERT INTO tbl VALUES (@dtp)";
using (var insertCommand = new SqlCommand..
{
   try
   {
     insertCommand.Parameters.AddWithValue("@dtp", dateTimePicker1.Text);
     con.Open();
     insertCommand.ExecuteScalar();
   }
   catch (Exception ex)
   {
      MessageBox.Show("Exception message: " + ex.Message, "DateTimePicker", MessageBoxButtons.OK, MessageBoxIcon.Error);
   }

上記のコードは、次の例外で終了します。 enter image description here

注意してください。乾杯。

0
WhySoSerious