将DateTime转换为long,反之亦然

问题描述

| 我想将日期以数字形式存储在表中。我知道该怎么做,但我不知道该怎么回去。如何将长变量转换为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。我不介意使用哪种技术。我只想有一种可以来回转换的方式。     

解决方法

        从DateTime到以下时间:
long DateTime.Ticks
从long到DateTime:
new DateTime(long)
    ,        使用对
long t = now.Ticks
DateTime Today = new DateTime(t)
    ,        从长到日期时间:
new DateTime(long ticks)
从DateTime到long:
DateTime.Ticks
    ,        由于您使用的是
ToFileTime
,因此您将需要使用FromFileTime进行其他操作。但请注意:   通常,FromFileTime方法   恢复的DateTime值是   由ToFileTime方法保存。   但是,两个值可能不同   在以下条件下:      如果DateTime值的序列化和反序列化发生在不同的时区中。对于   例如,如果DateTime值带有   时间为下午12:30在美国东部   时区被序列化,然后   在美国太平洋时间反序列化   区域,原始值为下午12:30。   调整为上午9:30反射   两者之间的时差   区域。      如果序列化的DateTime值表示无效时间   在当地时区。在这种情况下,   ToFileTime方法调整   恢复DateTime值,以便它   代表当地的有效时间   时区。 如果您不在乎存储DateTime的哪个
long
表示形式,则可以按照其他建议使用
Ticks
(根据您的要求,Ticks可能更可取,因为
ToFileTime
返回的值似乎是在Windows上下文中文件系统API)。     ,        有几种可能(请注意,这些长值与Unix时代不同。 对于您的示例(反转
ToFileTime()
),只需使用
DateTime.FromFileTime(t)
。     ,        有一个DateTime构造函数需要很长时间。
DateTime today = new DateTime(t); // where t represents long format of dateTime 
    ,        
   long dateTime = DateTime.Now.Ticks;
   Console.WriteLine(dateTime);
   Console.WriteLine(new DateTime(dateTime));
   Console.ReadKey();
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...