如何在c#中将date转换为int?

时间:2015-05-25 08:30:10

标签: c#

我尝试了太多,花时间从互联网上搜索如何使用c#将日期转换为整数但是我没有得到很好的答案我尝试了很多事情但它没有正常工作像这样

int aa = 0;
            con.Open();
            SqlDataReader dr;
            cmd = new SqlCommand("select dat from T0");
            cmd.Connection = con;

            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                aa = Convert.ToInt32(dr[0].ToString());
            }
            MessageBox.Show(aa.ToString());

            con.Close();

请有人为这件事找到解决方案!

对待Dlovan

4 个答案:

答案 0 :(得分:0)

假设dr [0]是DateTime:

long aa = Convert.ToInt64(((DateTime)dr[0]).ToString("yyyyMMddHHmmss")); //int isn't enough

如果你只需要yyyyMMdd,你可以:

int aa = Convert.ToInt32(((DateTime)dr[0]).ToString("yyyyMMdd"));

答案 1 :(得分:0)

这取决于你想要DateTime的精确度。

如果您需要绝对精确地使用Int64 (long),请Ticks

如果您坚持使用Int32 (int)尝试类似epoch time [Total seconds since 1, Jan 1970]

的内容
var int = (myDateTime - new DateTime(1, 1, 1970)).TotalSeconds;

答案 2 :(得分:0)

将日期时间转换为刻度。

var ticks = DateTime.Now.Ticks;
var date = new DateTime (ticks);

答案 3 :(得分:0)

试试这个,

string strDate = dr[0].ToString(); // 25/05/2015
DateTime dt = DateTime.ParseExact(strDate, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
int inst = Convert.ToInt32((dt - new DateTime(1970, 01, 01)).TotalSeconds);