DateTimePicker: तिथि और समय दोनों चुनें


143

क्या दिनांक और समय (ड्रॉपडाउन में) लेने के लिए DateTimePicker (Winforms) का उपयोग करना संभव है? आप चुने हुए मूल्य के कस्टम प्रदर्शन को कैसे बदलते हैं? इसके अलावा, क्या उपयोगकर्ता को दिनांक / समय मैन्युअल रूप से टाइप करने में सक्षम करना संभव है?

जवाबों:


187

स्वरूप को कस्टम पर सेट करें और फिर प्रारूप निर्दिष्ट करें:

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

या हालाँकि आप इसे बाहर रखना चाहते हैं। फिर आप सीधे तारीख / समय टाइप कर सकते हैं। यदि आप MMM का उपयोग करते हैं, तो आपको प्रविष्टि के लिए महीने के लिए संख्यात्मक मान का उपयोग करना होगा, जब तक कि आप उसके लिए स्वयं कुछ कोड न लिखें (उदाहरण के लिए, मई में 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 लिंक
वाई हा ली

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"
स्टीविन्क

मैंने इसका उपयोग किया लेकिन मैंने कस्टमफ़ॉर्मैट को कोड का उपयोग करने के बजाय बीनने वाले गुणों में डाल दिया
अंधा स्किर्ल

67

जॉब वन के लिए दो DateTimePickers का उपयोग करना सबसे अच्छा है, तिथि खंड के लिए डिफ़ॉल्ट होगा और दूसरा DateTimePicker समय भाग के लिए है। निम्न के रूप में दूसरा DateTimePicker प्रारूपित करें।

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

आप पर कब्जा करने के बाद दोनों को ऐसा दिखना चाहिए

दो तारीख समय बीनने वाले

इन दोनों नियंत्रणों से दिनांक समय प्राप्त करने के लिए निम्न कोड का उपयोग करें

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

इन दोनों नियंत्रणों को दिनांक समय निर्दिष्ट करने के लिए निम्नलिखित कोड का उपयोग करें

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

1
क्या मिनट की आवृत्ति 30 मिनट तक बढ़ने की संभावना है? जब उपयोगकर्ता ऊपर या नीचे बटन पर क्लिक करता है?
फैजानहुसैनरब्बानी

बहुत बढ़िया जवाब! मैंने अपने प्रोजेक्ट में कई बार इसका पुनः उपयोग करने के लिए कस्टम UserControl बनाया।
mpasko256

सलाह के लिये धन्यवाद। दिनांक और समय के लिए दो अलग-अलग नियंत्रण रखने के लिए समझ में आता है।
नजीब

45

दुर्भाग्य से, यह फ्रेमवर्क में कई मिसनोमर्स में से एक है, या एसआरपी का सबसे अच्छा उल्लंघन है।

दिनांक समय के लिए DateTimePicker का उपयोग करने के लिए, प्रारूप गुण को या तो समय या कस्टम पर सेट करें (यदि आप कस्टमफ़ॉर्मैट संपत्ति का उपयोग करके समय के प्रारूप को नियंत्रित करना चाहते हैं तो कस्टम का उपयोग करें)। फिर ShowUpDown प्रॉपर्टी को सही पर सेट करें।

यद्यपि उपयोगकर्ता मैन्युअल रूप से दिनांक और समय सेट कर सकते हैं, वे दोनों को सेट करने के लिए GUI का उपयोग नहीं कर सकते हैं।


24

DateTime Picker का उपयोग तिथि और समय दोनों को चुनने के लिए किया जा सकता है, इसीलिए इसे 'Date and Time Picker' कहा जाता है। आप "सेट कर सकते हैं प्रारूप " से "संपत्ति कस्टम " और अलग स्वरूप विनिर्देशक का प्रतिनिधित्व करने के सेट संयोजन / "में विभिन्न स्वरूपों में दिनांक / समय लेने कस्टम स्वरूप " संपत्ति। हालाँकि, यदि आप दिनांक बदलना चाहते हैं, तो पॉप-अप कैलेंडर का उपयोग किया जा सकता है, जबकि समय चयन के मामले में (उसी नियंत्रण में आप मान बदलने के लिए अप / डाउन कुंजियों का उपयोग करने के लिए बाध्य हैं।

उदाहरण के लिए एक कस्टम प्रारूप " ddddd, MMMM dd, yyyy hh: mm: ss tt " आपको इस तरह का परिणाम देगा: " गुरुवार, 20 अगस्त, 2009 02:55:23 PM "।

आप अपनी आवश्यकता के अनुरूप प्रारूप विनिर्देशकों के लिए विभिन्न संयोजनों के साथ खेल सकते हैं जैसे MMMM " अगस्त " देगा जबकि MM " अगस्त " देगा


"डेटटाइम पिकर का उपयोग तिथि और समय दोनों को लेने के लिए किया जा सकता है, इसीलिए इसे 'तिथि और समय पिकर' कहा जाता है।" - सिवाय इसके कि यह नहीं है, यही कारण है कि सवाल पूछा गया था।
Derf Skren

वास्तव में, यह नियंत्रण बहुत निराशाजनक है। मैंने सिर्फ एक दोपहर डिबगिंग कोड खर्च किया जब तक मुझे एहसास नहीं हुआ कि रफ़ू चीज़ एक मान लौटाएगा जो उपयोगकर्ता द्वारा संपादित तिथि या समय का प्रतिनिधित्व करता है, लेकिन दोनों। मुझे वेंट करना होगा: एक नियंत्रण एक वैध उपयोगकर्ता-संपादित दिनांक और समय (मेरा कस्टम प्रारूप yyyy-MM-dd HH:mm) कैसे दिखा सकता है और फिर एक मान लौटाता है जो प्रदर्शित दिनांक और समय के केवल भाग को दर्शाता है । मैं इसे एक बग कहूंगा, लेकिन यह दशकों से है ...
EBlake

16

Visual Studio में Propertiesअपने पर जाएँ dateTimePickerऔर सेट Formatपर जाएँ Custom। के तहत CustomFormatअपने प्रारूप दर्ज करें। मेरे मामले में मैंने इस्तेमाल कियाMMMMdd, yyyy | hh:mm

यहां छवि विवरण दर्ज करें
dateTimePickerProperties


वह यह नहीं पूछ रहा है कि DateTimePicker पर समय को प्रारूपित / प्रदर्शित कैसे करें। वह पूछ रहा है कि इसे एक समय लेने के लिए कैसे बनाया जाए (इसलिए DateTimePicker नाम, कोई यह मान लेगा कि नियंत्रण का उपयोग एक समय लेने के लिए भी किया जा सकता है)
nivs1978

यह सही उत्तर होना चाहिए। एक आकर्षण की तरह काम किया
KingMak

1

आप इसे समय प्रदर्शित करने के लिए प्राप्त कर सकते हैं । उससे आपको संभवतः दो नियंत्रण (एक तिथि, एक समय) प्राप्त करना होगा जो आप चाहते हैं।


1

मुझे डर है कि DateTimePicker नियंत्रण में उन चीजों को करने की क्षमता नहीं है। यह एक बहुत ही बुनियादी (और निराशाजनक!) नियंत्रण है। आपका सबसे अच्छा विकल्प तीसरे पक्ष का नियंत्रण ढूंढना हो सकता है जो आपको चाहिए।

मैन्युअल रूप से दिनांक और समय टाइप करने के विकल्प के लिए, आप इसे पूरा करने के लिए एक टेक्स्टबॉक्स / DateTimePicker संयोजन के साथ एक कस्टम घटक का निर्माण कर सकते हैं, और यह तीसरे पक्ष के नियंत्रण एक विकल्प नहीं है, तो यह यथोचित काम कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.