c# – 时间戳字符串长度

如果我这样做
// Default implementation of UNIX time of the current UTC time
TimeSpan ts = DateTime.UtcNow - new DateTime(1970,1,0);
string myResult = "";
myResult = Convert.ToInt64(ts.TotalSeconds).ToString();

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

解决方法

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

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

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

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

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

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

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...