2011-05-05 24 views
5

estoy recibiendo una fecha en el formato:C#: DateTime convertir

18/04/2011 4:57:20 PM 

El método DateTime.Parse() no tiene acceso a ella.

¿Hay alguna manera de conseguir que se convierta 18/04/2011 4:57:20 PM para devolver un objeto DateApril 18, 2011?

Respuesta

9

Esto no se ve como un formato estándar. La fecha es en-GB, la hora en-US. Debido a esto, le recomiendo que utilice DateTime.ParseExact y pasar el formato:

DateTime parsed = DateTime.ParseExact("18/04/2011 4:57:20 PM", 
             "dd/MM/yyyy h:mm:ss tt", 
             CultureInfo.InvariantCulture); 
3

probar esto:

DateTime dt = DateTime.ParseExact(dateString, "dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 
3

Puede utilizar ParseExact o mejor TryParseExact (que no genera una excepción cuando falla), con este método de dos se puede pasar a la descripción proveedor de formato como parámetro:

DateTime.ParseExact(strDate, "dd/MM/yyyy HH:mm:ss", null); 
0

Has probado esto

DateTime.Now.ToString("MMM dd, yyyy") 
0

el formato de fecha es dd/mm/aaaa no hay mes de 18

prueba este

DateTime.Parse("04/18/2011 4:57:20PM").ToShortDateString(); 
7

En primer lugar, para cambiar el formato de una fecha, se necesita un valor DateTime . No puedes formatear una fecha de cadena. DateTime.ParseExact utilizar para extraer el valor de la fecha a partir de una cadena de fecha con formato:

DateTime dateValue = 
    DateTime.ParseExact(stringDateValue, "dd/MM/yyyy h:mm:ss tt", 
     CultureInfo.InvariantCulture); 

continuación, puede utilizar DateTime.ToString(format) para extraer un valor de cadena con formato:

resultStringDateValue = dateValue.ToString("MMM dd, yyyy");