The DateTimePicker
control in Windows forms allows the user to choose one item from the dates or times list. If a date is displayed, this will appear in two parts: a drop-down list with a date in the text and a grid which appears when we click on the down arrow next to the list.
In other words, The DTP (DateTimePicker) controls provide a simple and intuitive interface through which date and time with the user can be exchanged. For instance, we can request the user to enter a date and then easily retrieve the selection using a DTP control.
If you want to see the DateTimePicker
as a pick or edit times control instead of dates, set the ShowUpDown
property to true and the Format
property to time.
The check box will be displayed next to the selected control date, when the ShowCheckBox
property is true.
The date-time value chosen can be updated when the check box is checked. The value is not available when the check box is empty.
The MaxDate and MinDate control characteristics determine the dates and times range. The Value property includes the current date and time of the control.
Four formats are available, and these values are set by the format property: Long, Short, Time, and Custom.
The Value property returns the value of a DateTime structure. The DateTime structure contains several properties that return specific details about the date displayed. These properties can be used only to return a value; do not use it to define a value.
Set the date and time value of the control
Set the Value
property to a date or time value.
dateTimePicker1.Value = new DateTime(2000, 09, 11);
Call the Text
property to return the whole value in the control, or call the property Value
method to return a portion of the value.
MessageBox.Show ("The selected value is " + dateTimePicker1.Text);
MessageBox.Show ("The day of the week is " + dateTimePicker1.Value.DayOfWeek.ToString());
MessageBox.Show("Millisecond is: " + dateTimePicker1.Value.Millisecond.ToString());
ToString
can be used to transform information into a string which can be shown to the user.
We need to set the property CustomFormat to a suitable string if the custom format is selected.
DateTimePickerFormat.Custom
.CustomFormat
property to a format string.
Example:
dateTimePicker1.Format = DateTimePickerFormat.Custom;
// Display the date as "Nov 9 Feb 2000".
dateTimePicker1.CustomFormat = "ddd dd MMM yyyy";
For example, the format string below shows the current date with a format "Today is: 05:30:31 Friday March 02, 2012" in the English (US) culture. The following format string is used for each character that is not a format character like "M", or an delimiter like":".
Example:
dateTimePicker1.CustomFormat = "'Today is:' hh:mm:ss dddd MMMM dd, yyyy";
Each character not included in single quotation marks may be changed, depending on the cultural setting. For example, the above format string shows the current date in English (U.S.) culture with the format "Today is: 05:30:31 Friday 02 March 2012."
Note that in a single quotation mark, the first colon should not be a delimiting character as it is in "hh: mm: ss."
The Table below describes different formats of date time and their results.
Specifier | DateTimeFormatInfo property | Results | Pattern value (for en-US culture) |
t | ShortTimePattern | h:mm tt | "4:05 PM" |
d | ShortDatePattern | M/d/yyyy | "3/9/2008" |
T | LongTimePattern | h:mm:ss tt | "4:05:07 PM" |
D | LongDatePattern | dddd, MMMM dd, yyyy | "Sunday, March 09, 2008" |
f | (combination of D and t ) |
dddd, MMMM dd, yyyy h:mm tt | "Sunday, March 09, 2008 4:05 PM" |
F | FullDateTimePattern | dddd, MMMM dd, yyyy h:mm:ss tt | "Sunday, March 09, 2008 4:05:07 PM" |
g | (combination of d and t ) |
M/d/yyyy h:mm tt | "3/9/2008 4:05 PM" |
G | (combination of d and T) | M/d/yyyy h:mm:ss tt | "3/9/2008 4:05:07 PM" |
m, M | MonthDayPattern | MMMM dd | "March 09" |
y, Y | YearMonthPattern | MMMM, yyyy | "March, 2008" |
r, R | RFC1123Pattern | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' (*) | "Sun, 09 Mar 2008 16:05:07 GMT" |
s | SortableDateTimePattern | yyyy'-'MM'-'dd'T'HH':'mm':'ss (*) | "2008-03-09T16:05:07" |
u | UniversalSortableDateTimePattern | yyyy'-'MM'-'dd HH':'mm':'ss'Z' (*) | "2008-03-09 16:05:07Z" |
Note: (*) = culture independent