时间戳字符串长度

001*_*001 10 c# string timestamp utc string-length

如果我这样做

// 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();
Run Code Online (Sandbox Code Playgroud)

myResult的最大字符串长度是多少,它总是相同的大小?

Age*_*rum 29

Int64是一个带符号的64位整数,这意味着它的值范围为?9,223,372,036,854,775,808to 9,223,372,036,854,775,807.

由于toString不使用逗号格式化其输出,因此字符串的最长可能值为?922337203685477580820个字符长.

现在,由于这表示UNIX时间戳,我们需要考虑返回的"合理"日期.在我写这篇文章时,当前的UNIX时间戳会接近1292051460,这是一个10位数字.

假设的10个字符的最大长度为您提供了从一系列时间戳-999999999999999999.这将为您提供一系列日期,范围从"1966年10月31日星期一格林尼治标准时间14:13:21"到"星期六,2286年11月20日17:46:39 GMT".请注意,我将否定符号作为下限中的字符包含在内,这就是为什么下限比上限更接近时代.

如果您不期望在1966年万圣节前或2286年11月下旬之后的日期,您可以合理地假设字符串的长度不超过10个字符.如果您期望超出此范围的日期(很可能是1966年之前而不是2286之后),您可以期望看到11个字符的字符串.我不会指望更多.

这是预期的最大字符数; 它可能会更短.


Bet*_*zel 5

假设代码将在将来使用,则为Int64的最大长度。

例如,现在该值为1292022273,因此长度为10。

您可以在http://www.timeanddate.com/date/duration.html上找到包含秒数的计算器

  • 24世纪,我将死了,在这个时候肯定会有足够的人解决这个问题! (8认同)
  • 我喜欢简单的答案 (2认同)