2016-10-19 2 views
-3

Я хотел конвертировать дату в формат DD/MM/YYYY/HH:MM:SS. дата указана пользователем.Как конвертировать дату в DD/MM/YYYY/HH: MM: SS

Я использую код ниже:

 string fromdate = context.Request.QueryString["fromdate"]; 
     string todate = context.Request.QueryString["todatedate"]; 

     DateTime fromDaten = DateTime.MinValue; 
     DateTime toDaten = DateTime.MinValue; 

     try 
     { 
      fromDaten = FormatDate(fromdate + " 00:00:00"); 
      toDaten = FormatDate(todate + " 00:00:00"); 
     } 
     catch (Exception ex) { } 

Я хотел преобразовать fromdate и todate в формат DD/MM/YYYY/HH:MM:SS. Когда я пытаюсь это сделать, я получаю 01/01/0001/00:00:00.

в FormatDate У меня есть код ниже:

 try 
     { 

      string dateTimeString = todate; 
      dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty); 

      string inputFormat = "yyyy-MM-dd HH:mm:ss"; 
      string outputFormat = "dd-MM-yyyy HH:mm:ss"; 
      var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture); 
      string output = dateTime.ToString(outputFormat); 
      return Convert.ToDateTime(output); 
     } 
     catch (Exception ex) 
     { 
      throw; 
     } 
+0

, что это значение в 'context.Request.QueryString [ "todatedate"]' –

+0

Что такое 'FormatDate': оказывается для преобразования 'string' в' DateTime', но вы форматируете даты при преобразовании в противоположном направлении. – Richard

+0

var fromdate = $ ('# datepickerFrom'). Datepicker ({dateFormat: 'yy-mm-dd'}). Val(); var todatedate = $ ('# datepickerTo'). datepicker ({dateFormat: 'yy-mm-dd'}). val(); –

ответ

0

Попробуйте следующие

DateTime dt = DateTime.ParseExact(sDate, "MM/dd/yyyy",CultureInfo.InvariantCulture); 

Позвольте мне знать, если это работает ..

+0

Он работал. Спасибо –

0

Этот код является немного беспорядок, попробуйте следующее:

string fromdate = context.Request.QueryString["fromdate"]; 
    string todate = context.Request.QueryString["todatedate"]; 

    DateTime fromDaten = DateTime.Parse(String.Join("/", fromdate.Split("/".ToCharArray()).Reverse().ToArray())); 
    DateTime toDaten = DateTime.Parse(String.Join("/", fromdate.Split("/".ToCharArray()).Reverse().ToArray())); 
+0

, когда я пытаюсь сделать это –

+0

my 'fromdate' is '10/09/2016 '. в 'fromDaten' я получил '1/1/0001 12:00:00 AM' –

+0

Я хочу '10/09/2016 12:00:00 AM ' –

0

Попробуйте this-

 string fromdate = context.Request.QueryString["fromdate"]; 
     string todate = context.Request.QueryString["todatedate"]; 

     if(!string.IsNullOrEmpty(fromdate)||!string.IsNullOrEmpty(todate)) /* check query string value */ 
     {    
     DateTime from=Convert.ToDateTime(fromdate); 
     DateTime to=Convert.ToDateTime(todate); 
     try 
     { 
      fromDate=from.ToString("dd/MM/YYYY HH:mm:ss");/*Here you get date time in required format */ 
      toDate = to.ToString("dd/MM/YYYY HH:mm:ss"); 
     } 
     catch (Exception ex) 
     { 
     } 
    } 
1

Вы должны использовать TryParse/TryParseExact вместо try/catch, который дороже, а не best practice.

string fromDate = "2016/10/20/12:13:14"; 
DateTime fromDaten = DateTime.MinValue; 
bool fromParsed = DateTime.TryParseExact(fromDate, "yyyy/MM/dd/HH:mm:ss", 
    new System.Globalization.CultureInfo("en-US"), 
    System.Globalization.DateTimeStyles.None, out fromDaten); 

// you may check fromParsed and handle invalid date/time 

Я привел пример только для fromDate. Вы можете создать функцию синтаксического анализа, чтобы справляться со всеми строками ваших дат.

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