c# - name - Longitud de cadena de marca de tiempo
meta name description content (4)
Para obtener el tamaño máximo de TimeSpan intente utilizar este código:
var maxValue = Convert.ToInt64(TimeSpan.MaxValue).ToString();
Espero que te ayude con tu pregunta! ¡Buena suerte!
Saludos, Dima.
Si hiciera esto
// Default implementation of UNIX time of the current UTC time
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
string myResult = "";
myResult = Convert.ToInt64(ts.TotalSeconds).ToString();
¿Cuál es la longitud máxima de cadena de myResult y siempre es del mismo tamaño?
Si se Convert.ToInt64()
con Convert.ToInt64()
sin formato, su longitud máxima será 20 , porque el Int64
mínimo es -9223372036854775808
(el signo negativo requiere un carácter adicional). En la práctica, sin embargo, no utilizará todo el rango permitido por Int64
debido a las limitaciones en TimeSpan
y DateTime
.
Y, no, la duración de myResult
no siempre será la misma, pero puede variar de 1 a 20. Simplemente depende del valor actual de Convert.ToInt64(ts.TotalSeconds)
.
Suponiendo que el código se utiliza en el futuro sería la longitud máxima de un Int64.
Por ejemplo, ahora ese valor es 1292022273, por lo que la longitud sería 10.
Puede encontrar una calculadora que incluye los segundos aquí http://www.timeanddate.com/date/duration.html
Un Int64 es un entero de 64 bits con signo, lo que significa que tiene un rango de valores de −9,223,372,036,854,775,808
a 9,223,372,036,854,775,807
.
Como toString
no formatea su salida con comas, el valor más largo posible de la cadena sería −9223372036854775808
que tiene 20 caracteres de longitud.
Ahora, dado que esto representa una marca de tiempo UNIX, debemos tener en cuenta lo que se consideraría una fecha "razonable" para regresar. Mientras escribo esto, una marca de tiempo UNIX actual sería algo cercano a 1292051460
, que es un número de 10 dígitos.
Asumir una longitud máxima de 10 caracteres le da un rango de marcas de tiempo de -99999999
a 9999999999
. Esto le da un rango de fechas desde "lunes, 31 de octubre de 1966, 14:13:21 GMT" hasta "sáb, 20 de noviembre de 2286, 17:46:39 GMT". Tenga en cuenta que estoy incluyendo el símbolo de negación como un carácter en el límite inferior, por lo que el límite inferior está mucho más cerca de la época que el límite superior.
Si no está esperando fechas anteriores a Halloween 1966 o después de finales de noviembre de 2286, puede suponer razonablemente que la longitud de la cadena no excederá los 10 caracteres. Si está esperando fechas fuera de este rango (probablemente antes de 1966 en lugar de después de 2286), puede esperar ver una cadena de 11 caracteres. No esperaría más que eso.
Esa es la cantidad máxima de caracteres que se puede esperar; podría ser más corto.