javascript - C# UTC 时间为毫秒
问题描述
在 C# 中,我想以毫秒为单位获取 UTC (+00:00) 时间。所以我可以在带有偏移量的 Javascript 中使用它(如下所示)。我已经尝试了几件事,但我没有做到这一点。
new Date(1528204115692 - (new Date().getTimezoneOffset() * 60000)).toString()
下面的代码根据我的时区给了我毫秒。
((DateTimeOffset)DateTime.UtcNow).ToUnixTimeMilliseconds()
我想在数据库中保留 UTC 时间毫秒,以便我可以根据用户浏览器区域显示日期时间。
例如:在 +03:00 区域现在时间是 06.05.2018 16:12:20.568
我想以毫秒为单位保持 UTC 时区时间。(纪元时间 00:00)
你能帮我吗?
谢谢
解决方案
您的 C# 代码是正确的。
从Mozilla:
新日期(值);
价值
整数值,表示自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数,忽略闰秒(Unix 纪元;但请考虑大多数 Unix 时间戳函数以秒计)。
所以你只需要:
var date = new Date(1528204115692);
1528204115692
您从 C# 代码中获得的值在哪里。
Javascript 日期在内部以毫秒为单位(它只是一个数字),“开始”于 1970 年 1 月 1 日 00.00(即“时间”0)。
所以:
public static readonly DateTime Date01Jan1970 = new DateTime(1970, 1, 1);
public static long MillisecondsFrom01Jan1970(DateTime dt)
{
return (dt.Ticks - Date01Jan1970.Ticks) / TimeSpan.TicksPerMillisecond;
}
像这样使用它:
long ms = MillisecondsFrom01Jan1970(DateTime.UtcNow);
DateTime.UtcNow
这将返回在(UTC 时间的“现在”)和 1970 年 1 月 1 日之间经过的毫秒数。
推荐阅读
- php - 如何根据 WooCommerce 中的产品 ID 更改发件人电子邮件
- python - 使用opengl时如何在pygame中blit图像?
- c - 在 C 中具有数组实现的 K-ary 树
- angular - 动态更改离子按钮的颜色/填充
- node.js - Passport.authenticate() 问题、错误请求和其他问题
- c++ - 在 C++ 中使用布尔函数匹配总和
- c - 内存地址仿真或模拟
- excel - 在 Microsoft Excel 中:当其他单元格改变颜色时,如何减去单元格中的总数?
- java - 如何重构嵌套的 switch-case (Java) 或 when (Kotlin)?
- javascript - 如何在 NodeJs 中修改数组中的 JSON 键名