Paul Hacker wrote about a WorkItem date picker control for TFS:
I have just made available a workitem control that will allow you pick a Date from a calendar rather than having to enter in a date freeform into workitems. I went as far as to create an msi for easier deployment (not that it’s really hard) . I have also included a read me and a sample workitem that you can use as a reference. Please let me know what you think, I find it useful and hope you will to.
http://phacker.wordpress.com/2007/07/28/workitem-date-picker-control/
I haven't downloaded and tried it yet, but I wonder if he has overlooked one of the built in TFS controls - DateTimeControl. On a form in a WIT, you can specify a <Control Type="DateTimeControl"... rather than <Control Type="FieldControl"...
E.g.
<Column PercentWidth="50">
<Group Label="Status">
<Column PercentWidth="33">
<Control Type="DateTimeControl" FieldName="MyClient.StartDate" Label="Start Date" LabelPosition="Left"/>
<Control Type="DateTimeControl" FieldName="MyClient.EndDate" Label="End Date" LabelPosition="Left"/>
<Control Type="FieldControl" FieldName="System.State" Label="Current Status" LabelPosition="Left"/>
</Column>
</Group>
</Column>
In addition, there's an undocumented "Format" and "CustomFormat" attribute you can use to style the control. See http://blogs.msdn.com/narend/archive/2007/02/09/hidden-attributes-to-control-your-work-item-form-layout.aspx
One limitation I have found is that when you use the DateTime control, the current time is stored, no matter what date you pick. This seems to be a limitation of the underlying Field storage mechanism. This is a limitation of the .NET DateTime control which behaves in a similar way to how it does when used in a Winform application (i.e. passing the current time when you don't explicitly set it).
[Edit] The underlying field storage mechanism does indeed support full precision date times.