5

HH:mm - 24 時間時計としてフォーマットされたタイムピッカー (datetimepicker) があります。00 から 24 および 00 から 59 として表示され、無効な値を入力することはできません。これはまさに私が欲しいものです。

ただし、AM および PM インジケータを使用すると、値は 12 時間として返されます。これは、ユーザーが「00」を入力すると「12」として返され、「14」は「2:00」として返されることを意味します。これは私が望むものではありません。

これらの不要な戻り値をテストして変換することはできますが、確かに (?) これらの特別な条件をチェックするのではなく、必要な値を取得するように説得するよりエレガントな方法はありますか? おそらく私が見落としたいくつかの単純なプロパティですか?

4

2 に答える 2

6

コントロールから入力した時間値をどのように取得していますか?

DateTimePickerコントロールがあり、そのプロパティをに設定し、そのFormatプロパティをに設定した場合、プロパティを読み取るときに(タイプとして)24時間形式の時間が取得されます。CustomCustomFormatHH:mmDateTimeValue

編集:値を使用しているToString()場合(上記のコメントで言うように)、これは現在のローカリゼーション設定を使用します。DateTime(すなわち)から値を読み取る方がはるかに良いでしょうDateTime.Hour DateTime.Minute

于 2010-06-24T22:47:03.000 に答える
5

値を読み取るときは、次を使用する必要があります。

string value = dateTimePicker.Value.ToString("HH:mm");

を使用するだけValue.ToString()の場合は、デフォルト(12時間)の文字列形式が使用されます。

于 2010-06-24T22:55:08.737 に答える