Estoy a continuación el código en c#, en donde me estoy convirtiendo mi tipo de cadena de formato de fecha datetime, pero dando el error.

if (!string.IsNullOrEmpty(SessionDictionary.GetValue("UserDetails", "ExpiryDate")))
{
    DateTime ExpiryDate = DateTime.ParseExact(SessionDictionary.GetValue("UserDetails", "ExpiryDate"), "dd mmm yy", null);                      
    strDate = sitedata.FormatDate(ExpiryDate, TridionDateFormat.ShortDate);
}
else
{
    strDate = "-";
}

Mi SessionDictionary.GetValue("UserDetails", "ExpiryDate") es de tipo cadena de datos que devuelve «31/01/2011 00:00:00» formato de la fecha, en el código de arriba, donde yo estoy usando DateTime.ParseExact que me está dando System.FormatException: String was not recognized as a valid DateTime. error.

Por favor, sugiera lo que está mal.

Gracias.

InformationsquelleAutor Manoj Singh | 2011-02-16

4 Comentarios

  1. 5

    La fecha de la muestra que usted describe (31/01/2011 00:00:00) se parece a un formato dd/MM/AAAA HH:mm:ss, así que ¿por qué estás usando dd mmm yyyy?

    Intentar

    DateTime.ParseExact(..., "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

    Nota el uso de HH (reloj de 24 horas) en lugar de hh (reloj de 12 horas), y el uso de InvariantCulture porque algunas culturas el uso de separadores de otros de slash.

    Por ejemplo, si el cultivo es de-de, el formato «dd/MM/aaaa» sería de esperar que el punto como separador (31.01.2011).

  2. 1

    Probablemente debido a mmm(no hay tales mes de formato), intente MMM lugar.(parece Feb/Ene/etc)

    • No, eso no puede ser cuestión como si yo sólo uso «d», en el que también está dando el error, por favor, sugiera!
  3. 1

    Usted está utilizando el formato incorrecto para analizar la fecha. El correcto es:

    DateTime ExpiryDate = DateTime.ParseExact(SessionDictionary.GetValue("UserDetails", "ExpiryDate"), "dd/MM/yyyy hh:mm:ss", null)

    También, si el formato de fecha del sistema está configurado para dd/MM/yyyy usted puede simplemente utilizar:

    DateTime ExpiryDate = DateTime.ParseExact(SessionDictionary.GetValue("UserDetails", "ExpiryDate"), "G", null)
    • He probado esto, pero sigue dando el mismo error para mí, por favor, sugiera!
    • Oops. Fijo. Comprobar ahora.

Dejar respuesta

Please enter your comment!
Please enter your name here