Solo formato de cadena a hora (sin fecha)

Tengo un string cuyo valor es 16: 00: 00 quiero convertirlo al formato de hora hh:mm:ss.. no quiero cita

TimeSpan.ParseExact(splitLine[6], "hh:mm:ss", null); está arrojando un error de que system.time no se puede convertir a system.date time

DateTime.ParseExact(splitLine[6], "hh:mm:ss", CultureInfo.InvariantCulture); está devolviendo la hora de la fecha con la adición automática de la fecha de hoy.

Solo quiero el formato de hora.

por favor ayúdame.

preguntado el 21 de septiembre de 13 a las 12:09

Si al menos una vez visitó este sitio, debe haberse enterado. dotnetperls.com/formato de fecha y hora ¡Ve allí y aprende lo básico! -

Si está dispuesto a ser un poco aventurero, puede abandonar los objetos de fecha/hora estándar de .Net e ir con algo mucho mejor: Noda-Time nodatime.org -

El uso puede usar DateTime.ParseExact(splitLine[6], "HH:mm:ss", CultureInfo.InvariantCulture).TimeOfDay o seguir la respuesta de @Hamlet Hakobyan TimeSpan.ParseExact(splitLine[6], "T", CultureInfo.InvariantCulture ); -

3 Respuestas

Desde MSDN:

El método ParseExact usa las convenciones de la referencia cultural especificada por el parámetro formatProvider solo si format es una cadena de formato TimeSpan estándar cuyo valor es "g" o "G". Las cadenas de formato estándar "c", "t" y "T" usan las convenciones de formato de la referencia cultural invariable. Las cadenas de formato personalizado definen el formato preciso de la cadena de entrada y usan caracteres literales para separar los componentes de un intervalo de tiempo.

entonces, puede usar esto para lograr su objetivo.

TimeSpan.ParseExact(splitLine[6], "T", CultureInfo.InvariantCulture);

Respondido el 21 de Septiembre de 13 a las 12:09

Con Cadenas de formato TimeSpan personalizadas tienes que escapar de delimitadores como dos puntos, por ejemplo:

TimeSpan.ParseExact(splitLine[6], "hh':'mm':'ss", null)

o bien:

TimeSpan.ParseExact(splitLine[6], @"hh\:mm\:ss", null)

Tenga en cuenta que esto es diferente de DateTime cadenas de formato donde algunos delimitadores, como dos puntos :, tienen un significado especial mientras que otros, como punto ., no tienen significado pero no necesitan ser escapados.

Respondido el 21 de Septiembre de 13 a las 12:09

Recuerde también, aunque no sea necesario aquí, que puede deshacerse de la fecha "parte" de un DateTime mediante el uso de la TimeOfDay perfecta. - Jeppe Stig Nielsen

¿Qué pasa con el siguiente código? Esta trabajando bien para mi.

string time = "16:00:00";
TimeSpan.Parse(time);

Respondido el 21 de Septiembre de 13 a las 12:09

Qué pasa TimeSpan.Parse("160:00:00")? - Hamlet Hakobian

OP dijo específicamente en cuestión que la cadena es 16:00:00. Es por eso que agregué esta forma más simple. - skjcyber

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.