es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema con el DateTime “0001-01-01T00:00:00”

Tengo un problema con mi fecha. Hago la inserción con Postman y no importa lo que ingrese, siempre obtengo “0001-01-01T00:00:00” como resultado.

También me gustaría limitar la salida solo a la fecha.

Estoy muy agradecido por cualquier ayuda.

Gracias.

Modelo:

public class BusinessTripDocument
{
    public long Id { get; set; }
    public string StartLocation { get; set; }
    [JsonPropertyName("startDateTime")]
    public DateTime StartDate { get; set; }
    public string Destination { get; set; }
    public DateTime DestinationDate { get; set; }
    public string Transportation { get; set; }
    public string SuperiorsApproval { get; set; }
}
// POST: api/Businesstripdocuments

[HttpPost("new/{eId}")]
public async Task<><businesstripdocument>> PostBusinesstripdocuments(long eId, BusinessTripDocument businesstripdocuments)
{
    Employee employee = await _context.Employees.FindAsync(eId);
    //  businesstripdocuments.Employee = employee;
    //   _context.Businesstripdocuments.Add(businesstripdocuments);
    employee.addDocument(businesstripdocuments);
    await _context.SaveChangesAsync();

    return CreatedAtAction("GetBusinesstripdocuments", new { id = businesstripdocuments.Id }, businesstripdocuments);
}

Postman

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría ser con el formato de la fecha que se envía en la solicitud POST. Asegúrese de que el formato de fecha que se utiliza sea compatible con el tipo de dato datetime en C#. Un formato comúnmente utilizado es “yyyy-MM-ddTHH:mm:ss” (por ejemplo, “2022-01-31T08:45:00”).

    Para limitar la salida solo a la fecha, puedes usar el método “.ToString(“yyyy-MM-dd”)” al formatear la fecha para la salida.

    Por ejemplo, en tu código, podrías cambiar las propiedades StartDate y DestinationDate a:

    [JsonPropertyName("startDateTime")]
    public DateTime StartDate { get; set; }
    
    [JsonPropertyName("destinationDateTime")]
    public DateTime DestinationDate { get; set; }
    
    // Utiliza esto para mostrar solo la fecha
    public string FormattedStartDate { get { return StartDate.ToString("yyyy-MM-dd"); } }
    
    // Utiliza esto para mostrar solo la fecha
    public string FormattedDestinationDate { get { return DestinationDate.ToString("yyyy-MM-dd"); } }
    

    Luego, en tu punto de conexión POST, puedes devolver las fechas formateadas para la salida:

    return CreatedAtAction("GetBusinesstripdocuments", new { id = businesstripdocuments.Id }, new { StartDate = businesstripdocuments.FormattedStartDate, DestinationDate = businesstripdocuments.FormattedDestinationDate });
    

Comments are closed.