将当前时间存储为整数

时间:2010-01-12 16:49:51

标签: .net datetime time

我想将当前时间存储为整数,重新perl。我知道我需要一个TimeSpan,从Windows时间开始。我知道窗口时间从1601年1月1日开始?

scope_creep

3 个答案:

答案 0 :(得分:4)

它必须是整数吗?可能很长吗?如果是这样,简单的答案就是在.Ticks对象上使用DateTime属性。

您还可以从MinValue属性获得支持的“最小”DateTime。然后,您可以使用普通减法运算符来获取两个DateTime之间的TimeSpan差异。

另外,将时间存储为整数可能很棘手,因为最大(无符号)int值只能存储大约136年。如果你需要超过这个分辨率,你需要使用很长时间,或者至少确保你选择适当的开始日期。

更新:要解决您的评论,您可以存储时间,然后像这样计算秒数:

long Ticks1 = DateTime.Now.AddSeconds(-10).Ticks;
long Ticks2 = DateTime.Now.Ticks;
TimeSpan elapsedTime = TimeSpan.FromTicks(Ticks2 - Ticks1);

答案 1 :(得分:1)

您可以从任何您喜欢的点开始将时间存储为整数。只要确保它始终相同。要从您的值转换为DateTime对象,请使用您选择的开始日期创建一个新的DateTime对象,并添加存储在整数变量中的秒数以返回到可用对象。要从DateTime转换为您的值,只需使用DateTime.Subtract方法,并将DateTime对象实例化为开始日期。

答案 2 :(得分:0)

日期时间值类型表示日期和时间,值范围为1月1日午夜1点00分,Anno Domini(公共时代),公元9999年12月31日晚上11:59:59

http://msdn.microsoft.com/en-us/library/system.datetime.aspx