/ / Como converter o tempo para o formato 24Hr de DateTime.Now - c #

Como converter o tempo para o formato 24Hr de DateTime.Now - c #

Aqui está o meu código, há um erro sobre a última linha informando que

"Não é possível converter implicitamente o tipo" string "para" System.TimeSpan "

//Getting the current date and time
DateTime dateTime = DateTime.Now;
//Date
var date = dateTime.Date;
//Time
var time = dateTime.TimeOfDay;
time = time.ToString("HH:mm");

Respostas:

3 para resposta № 1

Na terceira linha do seu código você declarou variável nomeada time (var time = dateTime.TimeOfDay;) usando var.

Var. Essa palavra-chave faz referência a um tipo de maneira implícita. Aliases qualquer tipo. O tipo de alias é determinado pelo compilador C #. Isso não tem penalidade de desempenho.

Então, o tipo de dados de tempo variável é TimeSpan porque o TimeOfDay() Método retorna um TimeSpan e, na próxima linha, você tentou atribuir ao tempo um valor de string que, em uma linguagem segura para texto, como C #, retorna um erro. Você deve simplesmente declarar outro valor:

//Getting the current date and time
DateTime dateTime = DateTime.Now;
//Date
var date = dateTime.Date;
//Time
var time = dateTime.TimeOfDay;
var timeOfDayStr = time.ToString("HH:mm");

Se você quiser obter o tempo no formato 24Hour você deve fazer isso:

var TimeIn24HrFormat = DateTime.Now.ToString("HH:mm");

1 para resposta № 2

Por hora e minuto, você pode fazer simplesmente:

String.Format("{0:HH:mm}", DateTime.Now)

Similarmente: Se você quiser o formato completo:

String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)

1 para resposta № 3

Sua variável de tempo é do tipo Timespan, mas vocêestá tentando atribuir uma string a ela. C # é uma linguagem estaticamente tipada, portanto, as variáveis ​​não podem mudar de tipo durante o tempo de execução. Simplesmente crie uma nova variável para sua string de tempo:

var time = dateTime.TimeOfDay;
var time24hr = time.ToString("HH:mm");