你认识一个 16 位的时间戳吗?

Posted

技术标签:

【中文标题】你认识一个 16 位的时间戳吗?【英文标题】:do you recognize a 16-digit timestamp? 【发布时间】:2011-03-14 05:55:24 【问题描述】:

我正在使用 Google bookmakrs,它返回 16 位时间戳,我似乎无法在 C# 中识别它以转换为真实日期,有什么想法吗?

如何将此时间戳:1278276905502403 转换为在 C# 中有意义的内容?

【问题讨论】:

【参考方案1】:

这看起来像 UNIX 时间,以微秒为单位。即自 1970.01.01 00:00:00 以来的微秒数。

可以试试这样的:

dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddMilliseconds(value/1000);

(可能是更好的方法,但我不懂 C#。)

改为 Python:

>>> time.ctime(1278276905502403/1000000)
'Sun Jul  4 22:55:05 2010'

【讨论】:

为什么要将它舍入为整数? o_O 我不知道 C#,也没有谷歌检查它是否接受浮点,我也不知道 C# 对隐式转换有多严格。但是我更新了它以使用 AddMilliseconds() 作为另一个答案,尽管现在它们基本相同。 你绝对正确,我把最后三位数字放在一起,它就像一个魅力(下面的答案也是正确的)【参考方案2】:

时间戳是自纪元 (01/01/1970 00:00:00 UTC) 以来的微秒数。

您可以像这样在 C# 中将其转换为 DateTime:

var timestamp = 1278276905502403;
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var myDate = epoch.AddMilliseconds(timestamp / 1000);

示例时间戳的结果是:07/04/2010 08:55:05 PM

【讨论】:

以上是关于你认识一个 16 位的时间戳吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Youtube API 在字幕轨道中搜索关键字/时间戳吗?

我可以在 Firestore 中重复使用现有字段作为分片时间戳吗?

在PostgreSQL中,我们可以直接比较两个不同时区的时间戳吗?

如何为每个 ping 结果添加时间戳?

使用JAVA如何去生成大量16位的并且是顺序递增的数字串?

将列数据 varchar 转换为 H2 数据库中的时间戳