我想把日期作为数字存储在表中。我知道怎么做,但是我不知道怎么返回。我怎样才能把一个长变量转换成ToDateTime呢?
DateTime now = DateTime.Now;
long t = now.ToFileTime();
DateTime today = t.ToDateTime; // I am looking for something like this line. This Method does not exist
我知道有很多方法可以将DateTime转换为long。我不介意使用哪种技术。我只想有一种方法可以来回转换。
9条答案
按热度按时间5fjcxozz1#
距日期时间的长度:
long DateTime.Ticks
结束日期时间从长:
new DateTime(long)
unhi4e5o2#
从长到日期时间:第一个月
从日期时间到长:
DateTime.Ticks
pw136qt23#
使用
long t = now.Ticks
和DateTime Today = new DateTime(t)
对wr98u20j4#
因为你使用的是
ToFileTime
,你可能想用FromFileTime来做相反的事情,但是note:通常,FromFileTime方法还原由ToFileTime方法保存的DateTime值。但是,在下列情况下,这两个值可能不同:
如果DateTime值的序列化和反序列化发生在不同的时区。例如,如果在美国东部时区序列化时间为12:30 P.M.的DateTime值,然后在美国太平洋时区反序列化,则原始值12:30 P.M.将调整为9:30 A.M.,以反映两个时区之间的差异。
如果序列化的DateTime值表示本地时区中的无效时间。在这种情况下,ToFileTime方法将调整还原的DateTime值,使其表示本地时区中的有效时间。
如果您不关心存储DateTime的哪个
long
表示,可以按照其他人的建议使用Ticks
(Ticks可能更好,这取决于您的需求,因为ToFileTime
返回的值似乎位于Windows文件系统API的上下文中)。fzsnzjdm5#
有几种可能性(注意,这些长值与Unix纪元不同。
对于您的示例(要反转
ToFileTime()
),只需使用DateTime.FromFileTime(t)
。xt0899hw6#
有一个DateTime构造函数需要长。
68de4m5k7#
iszxjhcz8#
如果要使用自1970年以来的秒数而不是刻度:
协调世界时:
当地时间:
并返回到日期时间
z4iuyo4d9#
我将添加一些从字符串到DateTime再到long的转换
这是一种简短的说法: