惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
T
Troy Hunt's Blog
Y
Y Combinator Blog
V
V2EX
美团技术团队
Last Week in AI
Last Week in AI
S
Security @ Cisco Blogs
IT之家
IT之家
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
AI
AI
罗磊的独立博客
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
N
News and Events Feed by Topic
P
Privacy International News Feed
V2EX - 技术
V2EX - 技术
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
GbyAI
GbyAI
L
LINUX DO - 热门话题
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
月光博客
月光博客
WordPress大学
WordPress大学
Latest news
Latest news
Google DeepMind News
Google DeepMind News
S
Schneier on Security
N
Netflix TechBlog - Medium
腾讯CDC
T
Tailwind CSS Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
L
LINUX DO - 最新话题
Project Zero
Project Zero
Cyberwarzone
Cyberwarzone
D
DataBreaches.Net
Webroot Blog
Webroot Blog
B
Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
H
Help Net Security
L
LangChain Blog
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 老羽

推荐AspNetPager分页控件 SqlServer2005中分页代码测试 WM中实现Splash动画效果 自定义合并多文件协议设计 .net中处理C/C++中的位域 POOM(Pocket Outlook Object Model)开发介绍及应用(转) 多线程执行多任务的DEMO GPRS管理与创建APN拨号连接 WM中电话相关的技巧 - 老羽 - 博客园 一道面试题题解 【转】Windows Mobile控制面板程序 [转]Windows Mobile上的服务程序 Smartphone2003开发总结一:Form总结 C++常用技巧一(整理收集) [转]CString,string,char*的综合比较 [转] C++ Windows字符和字符指针类型 [转]C++ int,char,string,CString类型转换(整理总结) C++字符串函数详解[转] Smartphone2003中实现焦点在ListView控件与其它控件中切换
JScript中Date.getTime转.Net中的DateTime
老羽 · 2009-08-02 · via 博客园 - 老羽

2009-08-02 11:33  老羽  阅读(982)  评论()    收藏  举报

JS中的getTime与.Net中的DateTime.Ticks意义相近,所以相互转换时,需要用到这两个概念;但是getTime与Ticks的意义有所区别,请看以下定义:

JS中getTime的定义:
getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。

C#中的Ticks
此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00以来经过的以 100 纳秒为间隔的间隔数。

对几个词来说明一下,纳秒也叫毫微秒,相互之前的转换关系是 :

1秒   = 10^3 毫秒
1毫秒 = 10^3 微秒
1微秒 = 10^3 毫微秒

查看getTime与Ticks的定义后,可以得知getTime以毫秒为单位,Ticks以100纳秒为单位,因此getTime与Ticks相差了 1000 * 1000 / 100;getTime()从1970-1-1开始计算,而Ticks从0001-1-1开始计算,因此Ticks多了1970-1-1之前的时间;转换公式如下:

getTime() * 1000 * 1000 / 100 + DateTime.Parse("1970-1-1").Ticks

测试程序如下:

//JS时间转.net时间
long jsGetTime = 1247617999000;
Console.WriteLine(jsGetTime);
long jsBeginTick = DateTime.Parse("1970-1-1").Ticks;

long netTicks = jsGetTime  * 1000 * 10 + jsBeginTick;
DateTime dt = new DateTime(netTicks);
Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss"));
DateTime dt2 = dt.ToLocalTime();
Console.WriteLine(dt2.ToString("yyyy-MM-dd HH:mm:ss"));

//.Net时间转JS getTime();
long dt2Ticks = dt2.ToUniversalTime().Ticks;
long dt2JsTicks = (dt2Ticks - jsBeginTick) / (1000 * 10);
Console.WriteLine(dt2JsTicks);
Console.Read();


作者:老羽Michael-Zhangyu's Blog
出处:http://michael-zhangyu.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。