minutes c# timespan

minutes - timestamp to string c#



Error de TimeSpan.ToString("hh: mm") (3)

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");