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 № 1Na 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");