如何将JavaScript日期对象转换为刻度
How to convert JavaScript date object to ticks
如何将JavaScript日期对象转换为刻度?我想使用刻度来获得数据同步后c#应用程序的确切日期。
如果要将DateTime
对象转换为通用刻度,则使用以下代码片段:
var ticks = ((yourDateObject.getTime() * 10000) + 621355968000000000);
一毫秒有10000个节拍。621.355.968.000.000.000在1st Jan 0001和1st Jan 1970之间。
JavaScript Date
类型的起源是Unix纪元:1970年1月1日的午夜。
. net DateTime
类型的起源是0001年1月1日的午夜。
您可以将JavaScript Date
对象转换为.NET ticks,如下所示:
var yourDate = new Date(); // for example
// the number of .net ticks at the unix epoch
var epochTicks = 621355968000000000;
// there are 10000 .net ticks per millisecond
var ticksPerMillisecond = 10000;
// calculate the total number of .net ticks for your date
var yourTicks = epochTicks + (yourDate.getTime() * ticksPerMillisecond);
如果"ticks"指的是"自epoch以来的毫秒数",则可以调用". gettime()"。
var ticks = someDate.getTime();
从MDN文档中,返回值是一个
表示从UTC (Unix Epoch) 1970年1月1日00:00:00开始的毫秒数的整数值。
就635646076777520000
添加的原因展开公认的答案
Javascript new Date().getTime() or Date.now()
将返回从midnight of January 1, 1970
传递的毫秒数。
在。net中(源代码在Remarks
章节下)
DateTime值类型表示日期和时间,其值范围从公历的00:00:00(午夜),January 1, 0001 Anno Domini(普通纪元)到11:59:59 p.m., December 31, 9999 A.D. (C.E.)。
621355968000000000
是midnight Jan 1 01 CE
到midnight Jan 1 1970
的刻度值
Console.Write(new DateTime(621355968000000000))
// output 1/1/1970 12:00:00 AM
因此将javascript时间转换为。net时间
var currentTime = new Date().getTime();
// 10,000 ticks in 1 millisecond
// jsTicks is number of ticks from midnight Jan 1, 1970
var jsTicks = currentTime * 10000;
// add 621355968000000000 to jsTicks
// netTicks is number of ticks from midnight Jan 1, 01 CE
var netTicks = jsTicks + 621355968000000000;
现在,在。net中
Console.Write(new DateTime(netTicks))
// output current time
JavaScript中的日期也包含偏移量。如果您需要删除它,请使用以下命令:
return ((date.getTime() * 10000) + 621355968000000000) - (date.getTimezoneOffset() * 600000000);
我使用Skeikh的解决方案并减去"偏移"的刻度
应该是date.GetTime()
。请注意,c#和Javascript使用不同的初始日期,所以使用像这样的东西来转换为c#日期时间。
public static DateTime GetDateTime(long jsSeconds)
{
DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return unixEpoch.AddSeconds(jsSeconds);
}
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 在Javascript中转换对象数组
- 如何将TypeScript对象转换为普通对象
- JavaScript代码问题:我正在将对象转换为数组
- Javascript如何转换对象数组
- 任何转换对象*值*的Javascript或Coffeescript“映射”函数
- 转换对象数组
- 转换对象或数组值的最佳方式
- 使用lodash转换对象的键和值的最优雅的方法是什么?
- Javascript/html5 2d Canvas Context -获取相对于Canvas的X, Y(相对于转换对象
- javascript,转换或强制转换对象
- 根据对象的不同,在转换对象时考虑旋转
- 在类中转换对象
- 转换对象数组的结构
- 用于在浏览器中转换对象(拖动、缩放、旋转和扭曲)的Javascript框架
- Javascript:通过lodash、下划线或corejavascript转换对象响应数组
- 如何转换对象数组
- 使用Lodash转换对象数组