質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

Q&A

解決済

2回答

21540閲覧

C# dateTimePickerのtext値を取得したいです。

osafuu

総合スコア11

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

0グッド

0クリップ

投稿2016/10/05 02:31

編集2016/10/05 02:50

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
String ymd = dateTimePicker1.Value.Text;

dateTimePickerのtext値を取得したく、上記のようなコードを入力しましたが、"dateTimePicker1.Value.Text"の"Text"の箇所にエラーが出てしまいます。
エラーの内容は以下の通りです。

「”System.DateTime”に”Text”の定義が含まれておらず、型System.DateTimeの最初の引数を引き受ける拡張メソッドが見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足しています。」

ちなみにDateTimePicker.Textプロパティの名前空間であるSystem.Windows.Formsはインポート済みです。

C#に造詣が深い方、知恵をお貸しください。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こんにちは。
DateTime型にはTextというプロパティは存在しません。string型に変換する場合はToStringメソッドが使えます。

csharp

1String ymd = dateTimePicker1.Value.ToString();

また、DateTime型には、ToStringメソッド以外に、

  • 長い形式の日付文字列に変換するToLongDateString
  • 短い形式の日付文字列に変換するToShortDateString
  • 長い形式の時刻文字列に変換するToLongTimeString
  • 短い形式の時刻文字列に変換するToShortTimeString

などのメソッドが用意されています。

質問のコードにはString ymd = ...と書かれていることから、「年月日」の文字列を取得したいと予想しました。よって、この場合はToLongDateStringメソッドを使用するのが適切かと思います。

一つ注意点として、日付の文字列化は「実行環境の言語設定の影響を受けます」。例えば、

csharp

1var now = DateTime.Now; 2Console.WriteLine($"日本語: { now.ToString(new CultureInfo("ja-JP")) }"); 3Console.WriteLine($"英語: { now.ToString(new CultureInfo("en-US")) }");

以上のコードを実行すると、出力結果が異なることを確認できます。
文字列のフォーマットが重要である場合は、予め出力結果を指定しておくなどの処置が必要になります。

詳しいことについては、以下のページを参照してください。必要な情報が全て書かれています。
http://dobon.net/vb/dotnet/string/datetimeformat.html

投稿2016/10/05 02:53

tamoto

総合スコア4103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

osafuu

2016/10/05 03:01 編集

ご回答、誠にありがとうございます。 ToStringメソッド以外のメソッド、大変勉強になりました。 質問した以上のことを教えていただきました。 また何かありましたら、ぜひ質問させてください。
guest

0

ベストアンサー

dateTimePicker1.Valueが返すのはDateTime型という日時を扱う構造体です。
DateTime型は単純にToString()を呼べば文字列として処理できます。

C#

1DataTime dateTime = dateTimePicker1.Value; // dateTimePicker1.ValueはDateTime型であることを示すコード。特に意味は無い 2String ymd = dateTimePicker1.Value.ToString();

また、このToString()を使いこなすと様々な形式で日時を取得することができます。
参考URL

投稿2016/10/05 02:49

ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

osafuu

2016/10/05 02:55

解決いたしました。 とても迅速かつ丁寧なご回答、誠に感謝いたします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問