Olá Victor.
Tudo bem?
Pelo que você descreveu e pelas imagens fornecidas, parece que o seu problema está relacionado à serialização de datas no retorno do seu método GET. No JSON que você mostrou, a data está aparecendo no formato ISO 8601, que é o padrão para representação de datas e horários em texto, e inclui a hora (neste caso, "00:00" indica meia-noite).
Se a hora está sempre aparecendo como "00:00", isso pode indicar que a hora não está sendo definida corretamente em algum ponto do seu processo, ou que a serialização está configurada para usar apenas a data. Aqui estão algumas sugestões para resolver este problema:
Verifique se a hora está sendo corretamente armazenada no banco de dados. Se você estiver usando o Entity Framework, certifique-se de que o tipo da coluna no banco de dados é datetime
ou datetime2
, que podem armazenar tanto a data quanto a hora.
Confira se a hora está sendo definida corretamente quando você cria ou atualiza a entidade Transacao
. Se a hora não for definida, ela será automaticamente configurada para meia-noite.
Se você estiver usando o ASP.NET Core, pode ser uma configuração de serialização JSON que está omitindo a hora. Verifique as configurações de serialização no seu Startup.cs
ou onde você configura o MVC. Por exemplo, se você estiver usando o System.Text.Json, você pode configurar o formato de data e hora assim:
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.WriteIndented = true;
options.JsonSerializerOptions.PropertyNamingPolicy = null;
options.JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
});
E o JsonDateTimeConverter
seria algo como:
public class JsonDateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return DateTime.Parse(reader.GetString());
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"));
}
}
- Se você estiver usando o Newtonsoft.Json, você pode configurar o formato da seguinte forma:
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.DateFormatString = "yyyy-MM-ddTHH:mm:ss.fffZ";
});
- Por fim, verifique se não há nenhum atributo ou configuração que esteja formatando a data para excluir a hora quando a entidade
Transacao
é serializada para JSON.
Espero que essas sugestões ajudem a resolver o problema com a hora não aparecendo no seu objeto DateTime
. Se ainda assim não funcionar, pode ser necessário investigar mais a fundo o fluxo de dados desde o momento em que a transação é criada até o ponto em que ela é serializada para o retorno do método GET. Tenta debugar cada parte, cada método para ver se a hora aparece em algum ponto.
Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.