DateTime时间转换

不訴離傷 2012-04-24 05:06:32

时间转换
public long MilliTimeStamp(DateTime TheDate)
{
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = TheDate.ToUniversalTime();
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
return (long)ts.TotalMilliseconds;
}

long time = MilliTimeStamp(DateTime.Now);
这样可得到一个13位的数字,返回 1970 年 1 月 1 日至今的毫秒数。

如何逆向回来,如果从JS客户端获取到 new Date().getTime(),然后在C#服务器中怎么解析返回一个DateTime对象。包含时区,网上看了一些都有错误。例如1335258540000,怎么得到DateTime
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
色拉油 2012-04-24
  • 打赏
  • 举报
回复
DateTime dt = new DateTime(1970,1,1);
dt = dt.AddMilliseconds(1225112546);
rayyu1989 2012-04-24
  • 打赏
  • 举报
回复
反过来

new DateTime(tick值)
rayyu1989 2012-04-24
  • 打赏
  • 举报
回复
new DateTime().Ticks
mngzilin 2012-04-24
  • 打赏
  • 举报
回复
纠正一下,加上本地时间和国际时间的时差,dtemp-dtemp.ToUniversalTime()可以计算出当前的时区,正为东几区,负为西几区

            long ss = 1335258540000;
DateTime dt2 = new DateTime(1970,1,1);
dt2 = dt2.AddMilliseconds(ss);
DateTime dtemp = DateTime.Now;
dt2 = dt2.Add(dtemp-dtemp.ToUniversalTime());//加上本地时间和国际时间的时差

Console.Write(dt2.ToString());
smilereeves 2012-04-24
  • 打赏
  • 举报
回复
把数字转换成秒(除以1000),1970年加上转换后的秒
mngzilin 2012-04-24
  • 打赏
  • 举报
回复
            long ss = 1335258540000;
DateTime dt2 = new DateTime(1970,1,1);
dt2 = dt2.AddMilliseconds(ss);

Console.Write(dt2.ToString());


结果:2012/4/24 9:09:00
不訴離傷 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

看这贴
http://topic.csdn.net/u/20091127/08/80a28c00-9ebb-41e9-93c1-e5e090ac141a.html

存储过程
create proc sp_millisec_2_datetime
@millisec_all bigint,
@base_time datetime2,
@output_da……
[/Quote]不是用数据库,只是客户端跟服务器端转换而已。而且我用的是entity framework。用oracle存储过程比较麻烦。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧