Aquí está mi código, hay un error con respecto a la última línea que indica que

"No se puede convertir implícitamente el tipo 'string' a '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");
c#
0
NauTxz 21 ene. 2018 a las 09:31

3 respuestas

La mejor respuesta

En la tercera línea de su código, declaró la variable denominada tiempo (var time = dateTime.TimeOfDay;) usando var.

Var. Esta palabra clave hace referencia a un tipo de manera implícita. Alias cualquier tipo. El compilador de C # determina el tipo con alias. Esto no tiene penalización de rendimiento.

Por lo tanto, el tipo de datos de tiempo variable es TimeSpan porque el método TimeOfDay() devuelve un TimeSpan y luego, en la línea siguiente, trató de asignarle al tiempo un valor de cadena que en un lenguaje de tipo seguro como C # devuelve un error. Simplemente debe declarar otro 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");

Si desea obtener la hora en formato de 24 horas, debe hacer esto:

var TimeIn24HrFormat = DateTime.Now.ToString("HH:mm");
3
Zze 21 ene. 2018 a las 06:44

Por hora y minuto, puede hacer simplemente:

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

Del mismo modo: si quieres el formato completo:

String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)
1
Rakibul Haq 21 ene. 2018 a las 06:37

Su variable de tiempo es un tipo de intervalo de tiempo, pero está tratando de asignarle una cadena. C # es un lenguaje de tipo estático, por lo que las variables no pueden cambiar el tipo durante el tiempo de ejecución. Simplemente haga una nueva variable para su cadena de tiempo:

var time = dateTime.TimeOfDay;
var time24hr = time.ToString("HH:mm");
1
zola25 21 ene. 2018 a las 06:38
48364289