DateTimePicker : 날짜와 시간을 모두 선택


143

DateTimePicker (Winforms)를 사용하여 드롭 다운에서 날짜와 시간을 모두 선택할 수 있습니까? 선택한 값의 사용자 정의 표시를 어떻게 변경합니까? 또한 사용자가 날짜 / 시간을 수동으로 입력 할 수 있습니까?

답변:


187

형식을 사용자 정의로 설정 한 후 형식을 지정하십시오.

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";  

또는 당신은 그것을 배치하고 싶습니다. 그런 다음 날짜 / 시간을 직접 입력 할 수 있습니다. MMM을 사용하는 경우 직접 코드를 작성하지 않는 한 해당 월에 숫자 값을 입력해야합니다 (예 : 5 월에 5 개의 결과).

날짜와 시간에 대한 선택 도구를 모릅니다. 나에게 맞춤 컨트롤처럼 들립니다.


16
24 시간제 : "dd MM yyyy HH mm ss". 개발자가 현지화 (다른 국가의 다른 날짜 / 시간 형식)에 관심을 가져야한다고 생각합니다. 오스트리아에서 인사드립니다.
hfrmobile

6
@hfrmobile- 현재 문화의 형식을 사용 System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern하고 System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern얻을 수도 있습니다 . MSDN 링크
Wai Ha Lee

1
@WaiHaLee에 동의 : Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " " + time 시간 구성 요소를 수동으로 제한 할 수도 있습니다. Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " HH:mm"
SteveCinq

나는 이것을 사용하지만 코드를 사용하여 선택 도구의 속성에서 CustomFormat을보다는 넣어
블라인드 Skwirl

67

작업에 두 개의 DateTimePicker를 사용하는 것이 가장 좋습니다. 하나는 날짜 섹션의 기본값이고 두 번째 DateTimePicker는 시간 부분입니다. 두 번째 DateTimePicker를 다음과 같이 포맷하십시오.

      timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
      timePortionDateTimePicker.ShowUpDown = true;

두 사람은 당신이 그들을 캡처 한 후 다음과 같아야합니다

두 날짜 시간 선택기

이 두 컨트롤에서 DateTime을 얻으려면 다음 코드를 사용하십시오.

DateTime myDate = datePortionDateTimePicker.Value.Date + 
                    timePortionDateTimePicker.Value.TimeOfDay; 

이 두 컨트롤에 DateTime을 할당하려면 다음 코드를 사용하십시오.

datePortionDateTimePicker.Value  = myDate.Date;  
timePortionDateTimePicker.Value  = myDate.TimeOfDay; 

1
분 빈도를 30 분으로 늘릴 수 있습니까? 사용자가 위 또는 아래 버튼을 클릭하면?
FaizanHussainRabbani

좋은 답변입니다! 내 프로젝트에서 여러 번 재사용 할 수 있도록 사용자 정의 UserControl을 만들었습니다.
mpasko256

제안 해 주셔서 감사합니다. 날짜와 시간에 대해 서로 다른 두 가지 컨트롤을 갖는 것이 좋습니다.
Najeeb

45

불행히도, 이것은 프레임 워크에서 많은 오용 중 하나이거나 SRP를 위반하는 것입니다.

시간에 DateTimePicker를 사용하려면 Format 속성을 Time 또는 Custom으로 설정하십시오 (CustomFormat 속성을 사용하여 시간 형식을 제어하려면 Custom을 사용하십시오). 그런 다음 ShowUpDown 속성을 true로 설정하십시오.

사용자는 날짜와 시간을 수동으로 함께 설정할 수 있지만 GUI를 사용하여 둘 다를 설정할 수는 없습니다.


24

DateTime Picker는 날짜와 시간을 모두 선택하는 데 사용할 수 있으므로 '날짜 및 시간 선택기'입니다. " 형식 "특성을 " 사용자 정의 "로 설정하고 다른 형식 지정자의 조합을 설정하여 " 사용자 정의 형식 "특성 에서 다른 형식으로 날짜 / 시간을 나타내거나 선택할 수 있습니다. 그러나 날짜를 변경하려면 시간 선택의 경우 팝업 달력을 사용할 수 있습니다 (동일한 컨트롤에서 위 / 아래 키를 사용하여 값을 변경해야합니다).

예를 들어 사용자 정의 형식 " ddddd, MMMM dd, yyyy hh : mm : ss tt "는 " 2009 년 8 월 20 일 목요일 오후 02:55:23 "과 같은 결과를 제공합니다 .

당신은 당신의 필요 예에 맞게 형식 지정자에 대해 서로 다른 조합으로 주위를 재생할 수 있습니다 MMMM "줄 것이다 8 월 반면" MM은 "줄 것이다 팔월 "


"DateTime Picker를 사용하여 날짜와 시간을 모두 선택할 수 있으므로 'Date and Time Picker'입니다." -할 수 없다는 점을 제외하고는 질문이 제기되었습니다.
Derf Skren

실제로이 컨트롤은 매우 실망 스럽습니다. 나는 darn이 사용자 편집 날짜 또는 시간 을 나타내는 값을 반환한다는 것을 깨달을 때까지 오후 디버깅 코드를 보냈지 만 둘다는 아닙니다. 환기가 필요합니다 : 컨트롤이 유효한 사용자 편집 날짜 및 시간을 표시하고 (사용자 정의 형식은 yyyy-MM-dd HH:mm) 표시 된 날짜 및 시간의 일부만 반영하는 값을 반환하는 방법은 무엇입니까 ? 나는 그것을 버그라고 부를 것이지만 수십 년 동안 존재 해왔다.
EBlake

16

로 이동 Properties귀하의 dateTimePicker비주얼 스튜디오와 세트 FormatCustom. 아래는 CustomFormat당신의 형식을 입력합니다. 내 경우에는MMMMdd, yyyy | hh:mm

여기에 이미지 설명을 입력하십시오
dateTimePickerProperties


그는 DateTimePicker에서 시간을 형식화 / 표시하는 방법을 묻지 않습니다. 그는 시간을 선택하는 방법을 묻습니다 (따라서 DateTimePicker라는 이름을 사용하여 컨트롤을 사용하여 시간을 선택할 수도 있다고 가정)
nivs1978

이것이 정답이어야합니다. 매력처럼 일함
KingMak

1

시간 을 표시 할 수 있습니다 . 그로부터 당신은 아마 당신이 원하는 것을 달성하기 위해 두 개의 통제 (한 날짜, 한 번)를 가져야 할 것입니다.


1

DateTimePicker 컨트롤에 이러한 작업을 수행 할 수있는 기능이 없습니다. 꽤 기본적이고 실망스러운 컨트롤입니다. 가장 좋은 방법은 원하는 것을 수행하는 타사 컨트롤을 찾는 것입니다.

날짜와 시간을 수동으로 입력하는 옵션의 경우 TextBox / DateTimePicker 조합을 사용하여 사용자 지정 구성 요소를 작성하여이를 수행 할 수 있으며 타사 컨트롤이 옵션이 아닌 경우 합리적으로 작동 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.