如何将DateTime转换为Integer值?
将日期时间转换为字符串值?
编辑:如何将DateTime转换为字符串值?
例
String return value of 20100626144707 (for 26th of June 2010, at 14:47:07)
如何将DateTime转换为Integer值?
将日期时间转换为字符串值?
编辑:如何将DateTime转换为字符串值?
例
String return value of 20100626144707 (for 26th of June 2010, at 14:47:07)
即不能被表示为一个整数,它会溢出。但是,这可能会很长。
DateTime dateTime = new DateTime(2010, 6, 26, 14, 44, 07);
long time = long.Parse(dateTime.ToString("yyyyMMddHHmmss"));
然而,这将是更直观简单表达它作为一个字符串,但我不知道你打算用这些信息做什么。
编辑:
既然你已经更新了这个问题,答案是简单的。
string time = dateTime.ToString("yyyyMMddHHmmss");
32位整数不足以将DateTime值保留为非常精确的分辨率。 Ticks属性很长(Int64)。如果你并不需要精确到蜱级别,你可以得到类似秒钟从纪元:
TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));
int dateAsInteger = (int)t.TotalSeconds;
它通常是一个坏主意,使用数字数据类型来存储一个数字,你不能做算术上。例如。在你的例子中的数字没有数字含义或值,添加它或减去它是毫无意义的。但是,自特定日期以来的秒数是,它可用作数字数据类型。
从他的样品,它看起来像他只是想要将实际日期表示为以年,月,日等开始的数字。 – 2010-06-26 04:12:36
他没有要求秒数,请再次阅读问题 – 2010-06-26 04:13:17
@Srin:原始问题中的示例确实显示秒数。 – 2010-06-26 04:19:00
注意:这是在问题改为“字符串值”而不是“整数值”之前发布的。
从本质上讲,你要沿着所需的各部分名额转移号码,然后将其添加:
var x = new DateTime(2010,06,26,14,47,07);
long i = x.Year;
i = i * 100 + x.Month;
i = i * 100 + x.Day;
i = i * 100 + x.Hour;
i = i * 100 + x.Minute;
i = i * 100 + x.Second;
Console.WriteLine(i); // 20100626144707
感谢提示响应:) – 001 2010-06-26 04:27:23