Solo formato de cadena a hora (sin fecha)
Frecuentes
Visto 166 veces
0
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.
3 Respuestas
2
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
0
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
0
¿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 c# datetime or haz tu propia pregunta.
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! - Afzaal Ahmad Zeeshan
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 - RenniePet
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 ); - Sai