在C#中怎样使Datetime型的数据变成13位数字
我要在C#中,使Datetime类型的数据变成13位数字。比如说可以使一个时间变成:1302192000000。
我用DateTime time3 = new DateTime(2011, 5, 5);
Console.WriteLine("时间一:"+time3.ToFileTimeUtc().ToString());
这种方法试过了,但是不行,不是我要的13位数字。
由时间类型变为数字后,程序还是可以判断这些数字表示的是什么时间。
请各位高手帮帮忙 --------------------编程问答-------------------- --------------------编程问答-------------------- DateTime.Now.ToString("yyyyMMddHHmmss"); --------------------编程问答-------------------- 九位行不行? --------------------编程问答-------------------- 是不是截了5位?
--------------------编程问答-------------------- 我算了算确实需要13位
DateTime time3 = new DateTime(2011, 5, 5);
Console.WriteLine("时间一:" + (time3.ToFileTimeUtc() / 100000).ToString());
年按照最大9999,需要二进制14位
月最大按照12,需要二进制4位
日最大31,需要二进制5位
小时最大23,需要二进制5位
分钟最大59,需要二进制6位
秒最大59,需要二进制6位
一共二进制40位,全部都是1的话,最大4398046511103,十进制一共13位 --------------------编程问答-------------------- 您那时间是这个2013年8月25日16点
DateTime dt = new DateTime(2013, 8, 25,16,0,0);//加上时分秒
long s = dt.ToFileTimeUtc();
--------------------编程问答-------------------- 以前玩过,这个简单,分别获取时分秒,分别存入数组,访问时可以调用数组,但是显示可以加到一起显示。也就是,你的时间各个部分在代码里分开的,而在用户界面端则合在一起显示。 --------------------编程问答--------------------
DateTime.Now.Ticks / 100000--------------------编程问答--------------------
new DateTime(2011, 5, 5).Ticks/10000--------------------编程问答--------------------
这也太浪费空间了。 --------------------编程问答--------------------
你的不带秒. --------------------编程问答-------------------- 我写了一个
--------------------编程问答-------------------- 这个就是把秒都加上,绝对控制在十进制13位之内,能用到9999年。
static void Main(string[] args)
{
ulong x = Encode(DateTime.Now);
Console.WriteLine("现在时间转换为" + x);
Console.WriteLine("再转为时间" + Decode(x));
Console.ReadLine();
}
static ulong Encode(DateTime dt)
{
ulong x = 0;
x += (ulong)dt.Second;
x += ((ulong)dt.Minute) << 6;
x += ((ulong)dt.Hour) << 12;
x += ((ulong)dt.Day) << 17;
x += ((ulong)dt.Month) << 22;
x += ((ulong)dt.Year) << 26;
int y = (int)Math.Log(x, 2);
x = x << (39 - y);
x += (ulong)(39 - y);
return x;
}
static DateTime Decode(ulong x)
{
int m = (int)(x % 4);
DateTime dt = new DateTime((int)(x >> (26 + m)), (int)(x << (24 + 14 - m) >> 60),
(int)(x << (24 + 18 - m) >> 59), (int)(x << (24 + 23 - m) >> 59),
(int)(x << (24 + 28 - m) >> 58), (int)(x << (24 + 34 - m) >> 58));
return dt;
}
补充:.NET技术 , C#