minutes - timestamp to string c#
Error de TimeSpan.ToString("hh: mm") (3)
Esta pregunta ya tiene una respuesta aquí:
Por qué recibí un error cuando quiero obtener la cadena de un TimeSpan
con un formato personalizado.
DateTime.Now.TimeOfDay.ToString("hh:mm");
// Error: Input string was not in a correct format.
No utilice TimeOfDay
. Haga directamente ToString()
en DateTime.Now
:
DateTime.Now.ToString("hh:mm");
TimeOfDay
es un TimeSpan
. Los documentos indican claramente esto sobre la sobrecarga de TimeSpan.ToString(string format)
:
El parámetro de formato puede ser cualquier especificador de formato estándar o personalizado válido para los valores de TimeSpan. Si el formato es igual a String.Empty o es nulo, el valor de retorno del objeto TimeSpan actual se formatea con el especificador de formato común ("c"). Si formato es cualquier otro valor, el método lanza una excepción FormatException.
Si debe hacerlo usando una variable TimeSpan
, simplemente puede agregarla a una variable DateTime
que tiene su parte de tiempo establecida en cero, y luego usar su ToString()
:
DateTime.Today.Add(YourTimeSpanVariable).ToString("hh:mm");
Según MSDN, TimeOfDay es un TimeSpan. Y en los ejemplos de TimeSpan.ToString ve que :
debe escaparse.
hh /: mm /: ss: 03:00:00
Esto también se explica en la página Cadenas de formato de TimeSpan personalizadas
Los especificadores de formato de TimeSpan personalizados no incluyen símbolos separadores de marcador de posición, como los símbolos que separan los días de horas, las horas de minutos o los segundos de los segundos fraccionarios. En su lugar, estos símbolos deben incluirse en la cadena de formato personalizado como literales de cadena. Por ejemplo, "dd / .hh /: mm" define un período (.) Como separador entre días y horas, y dos puntos (:) como separador entre horas y minutos.
Así que prueba:
DateTime.Now.TimeOfDay.ToString("hh/:mm");
DateTime.Now.TimeOfDay.ToString(@"hh/:mm/:ss")