Escolha uma Página
(Last Updated On: 13/10/2019)

Para  ver as datas formatadas em qualquer view que utilize um campo de data, basta alterar o model que essa view utilza. A partir daí todas as views que usarem o mesmo model ficarão com as datas ajustadas.

Deverá ser acrescentada a linha (no caso para formatar datas no formato brasileiro, dia, mês e ano, sem hora:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]

Cada campo data do modelo ficará assim:

using System;
using System.ComponentModel.DataAnnotations;

namespace Coaching.Models
{
    public partial class Avaliacoes
    {
        public int IdAvaliacao { get; set; }
        public int IdAvaliado { get; set; }
        public int IdAvaliador { get; set; }
        public string TipoDeAvaliador { get; set; }
        public int IdTipoquestionario { get; set; }
        public bool? FlagFim { get; set; }
        public string Comentario { get; set; }
        public bool? FlagComentario { get; set; }
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
        public DateTime? DataFim { get; set; }
        public int? NumRespostas { get; set; }
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
        public DateTime? DataAltera { get; set; }
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
        public DateTime? DataConvite { get; set; }
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
        public DateTime? DataLembrete { get; set; }
        public int? NumPerguntas { get; set; }
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
        public DateTime? DataCadastro { get; set; }
    }
}

Em cada arquivo de modelo onde fizer isso, deverá sempre acrescentar no topo:

using System.ComponentModel.DataAnnotations;

Essas alterações valem para toda aplicação. Onder que que essas datas entrarem, nas views, eles estarão formatadas.

Outra forma de fazer, mais consistente

Ajuste geral da Cultura do seu projeto

No arquivo Startup.cs, coloque as seguintes instruções logo no começo do método public void ConfigureServices(IServiceCollection services). Isso aplica essas definições para todas páginas da sua aplicação.

arquivo startup.cs - em public void ConfigureServices(IServiceCollection services)
public void ConfigureServices(IServiceCollection services)
        {
            //copie a partit daqui
            var cultureInfo = new CultureInfo("pt-BR");
            cultureInfo.NumberFormat.CurrencySymbol = "R$";

            CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
            CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
           //copie até aqui

            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

Ajuste nos modelos que tem data (date)

Em todos os modelos em que tiver data, formaste o campo data da seguinte forma:

 

em todos os campos de modelos que tem data (date)
 //colocar no controle yourModel.DataCadastro = DateTime.Now; se quiser pré instanciar já 
//no get
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
        [Display(Name = "Data de Cadastramento")]
        public DateTime DataCadastro { get; set; }

Acerto das Views (todas que mostram a data)

Simplesmente substitua todas as linhas (em geral nos arquivos index.cshtml e details.cshtm) que tenham:

<td>
@Html.DisplayFor(modelItem => item.DataCadastro)
</td>

Substitua por:

<td>
@Html.TextBoxFor(modelItem => item.DataCadastro, “{0:dd-MM-yyyy}”)
</td>

Obrigado pela sua leitura. Continue visitando este blog e compartilhe artigos em sua rede de relacionamento. Por favor, se quiser, registre sugestões e comentários ao final da página.