2015-08-20 4 views
1

У меня есть текстовое поле aspx с элементом управления расширителем календаря AJAX.Подтвердить формат даты после преобразования в asp.net

<asp:TextBox ID="tbxFirstReceivedDate" CssClass="selectstyle" runat="server" MaxLength="100" Width="200"></asp:TextBox> 
<cc1:CalendarExtender ID="CalendarExtender1" TargetControlID="tbxFirstReceivedDate" BehaviorID="behaviorID" runat="server" Format="ddd MM/dd/yyyy hh:mm:ss tt"></cc1:CalendarExtender> 

Дата, указанная в текстовом поле, находится в формате «Tue 08/04/2015 12:00:00 AM». Я конвертирую дату в формат MM/dd/yyyy hh: mm: ss tt, используя приведенный ниже код в событии нажатия кнопки отправки.

CultureInfo ci = new CultureInfo("en-US"); 
DateTime date = Convert.ToDateTime(tbxFirstReceivedDate.Text, ci); 

Я хочу подтвердить формат даты после завершения преобразования. Если новый формат даты не указан в MM/dd/yyyy hh: mm: ss tt, я хочу отобразить сообщение об ошибке.

Как я могу проверить формат кода?

+0

Я думаю, что это было предложено до: http://stackoverflow.com/questions/371987/validate-a-datetime-in-c-sharp. 'DateTime.TryParse' также имеет необязательный аргумент для указания формата. Помогает ли это? – hschne

+0

Что вы подразумеваете под «Я хочу проверить формат даты после завершения преобразования»? Формат преобразования - это формат, из которого вы конвертируете. a 'DateTime' не имеет формата, поэтому после того, как вы преобразовали формат, он больше не является 'DateTime'. –

ответ

0

DateTime.TryParseExact позволяет это, например:

var dateString = tbxFirstReceivedDate.Text; 
var date format = "MM/dd/yyyy hh:mm:ss tt"; 

DateTime theDateTime; 

if (!DateTime.TryParseExact(dateString, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out theDateTime)) 
{ 
    // Report error about invalid date format here 

} 
Смежные вопросы