Symptom: Attempting to set the value of a DateTime field in InfoPath by using data concatenated from string data results in an error “Only Date or Date and Time allowed”, although the date appears to be formatted correctly, and typing anywhere in the field causes the data to be accepted as a date.
Cause: The underlying DateTime field stores the data in YYYY-MM-DD format. Typing in the field causes the DateTime field to attempt to reformat the text entered into any acceptable format, such as 01/22/2016 or 14-03-2016. Setting the field’s value via InfoPath rule does not trigger this reformatting check.
Solution: Concatenate the date and time string in a format acceptable to the DateTime Field.
Create fields Month, Day, and Year as type Choice. List 01, 02, 03 or 2015, 2016, 2017, etc. as the choices.
Create a field DateAsDateTime as type DateTime.
Set an action rule on each of the fields (Month, Day, and Time) to set the DateAsDateTime value* using the following formula
concat(Year, “-“, Month, “-“, Day, “T00:00:00Z”)
*be sure to validate that the Month Day and Year are populated before the action rule runs.
This will add the date with time of 12 AM. To change the time, convert the time to military time and replace the 00:00:00 in the concat formula.
Thanks to this blog for tips on the proper format. http://nabeeldotnet.blogspot.com/2011/11/infopath-2010-date-picker-problem-when.html